Tuesday, 22 October 2019

Access Reverse Relation in django

Models.py

class MaterialRequest(models.Model):
    owner = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='allotment_sales')
    flow = models.ForeignKey(Flow, on_delete=models.CASCADE, related_name='flow')
    kit = models.ForeignKey(Kit, on_delete=models.CASCADE, related_name='kit')
    quantity = models.IntegerField(default=0)
    is_allocated = models.BooleanField(default=False)

class AllotmentDocket(models.Model):

    transaction_date = models.DateField(default=datetime.now)
    dispatch_date = models.DateField(default=datetime.now)
    sales_order = models.ForeignKey(MaterialRequest, on_delete=models.CASCADE, related_name='allotment_sales')
    parent_company = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='allotment_parent')

    plastic_pallet = models.IntegerField(default=0)
    side_wall = models.IntegerField(default=0)
    top_lid = models.IntegerField(default=0)
    insert = models.IntegerField(default=0)
    separator_sheet = models.IntegerField(default=0)

I wan to access all the material request as well as the ones which have allotment docket to create a table. For e.g I have 5 Material Request and 3 Allotment dockets, i want a table in which there are 5 rows showing all the details of material request's objects and the respective allotment objects

Something like this:

owner flow kit quantity platic_pallet side_wall top_lid Insert 
 1     1    1     1        1              1        1      1  
 2     2    2     2        2              2        2      2
 3     3    3     3        3              3        3      3 
 4     4    4     4        -              -        -      - 
 5     5    5     5        -              -        -      -

Views.py

def mat_details(request):
    value = request.POST['my-select']
    start = request.POST['from']
    end = request.POST['to']

    client_pk = Client.objects.filter(client_name = value)[0]

    mat_req = MaterialRequest.objects.filter(owner = client_pk.pk, created_on__range =[start, end] )

    return render(request, 'packsapp/employee/matdeatils.html', {'query': mat_req})


from Access Reverse Relation in django

No comments:

Post a Comment