Attribute Error 'NoneType' object has no attribute '_prefetch_related_lookups'

145 views
Skip to first unread message

Warwick Lewarne

unread,
Jul 11, 2019, 7:25:58 AM7/11/19
to Django users
Hi all,

I keep getting the above error and I am not sure what I need to do to correct it. An example will assist.

my model:
class Product_Group(models.Model):
    customer_id = models.ForeignKey(Customer, on_delete=models.CASCADE)
    prod_group = models.CharField(max_length=30, unique = True, verbose_name = "product group")
    

    def __str__(self):
        return self.prod_group

class Part_Number(models.Model):
    customer_id = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name = 'customer')
    prod_group = models.ForeignKey(Product_Group, on_delete=models.DO_NOTHING, related_name='product')
    part_number = models.CharField(max_length=40, unique = True)
    part_description = models.CharField(max_length=60)
   

    def __str__(self):
        return self.part_description

My form:
from django import forms
from django.contrib.auth.models import User
from .models import Department, Product_Group, Part_Number, Reject_Reason, Return_Reason, Supplier, Consumer
from accounts.models import Customer_User




class Report_GenerateForm(forms.Form):
    part_number = forms.ModelChoiceField(queryset=None, label='Part Number')
    reject_data = forms.ModelChoiceField(queryset=None)
    select_data = forms.ModelChoiceField(queryset=None)

    def __init__(self, *args, **kwargs):

        customer_id = kwargs.pop('customer_id')
        table_select = kwargs.pop('table_select')
        product = kwargs.pop('product')
        super(Report_GenerateForm, self).__init__(*args, **kwargs)
        self.fields['part_number'].queryset = Part_Number.objects.filter(customer_id= customer_id, prod_group = product).select_related('prod_group')
        if table_select == 1:
            self.fields['select_data'].queryset = Department.objects.filter(customer_id=customer_id)
            self.fields['select_data'].label = 'Department'
            self.fields['reject_data'].queryset = Reject_Reason.objects.all()
            self.fields['reject_data'].label = 'Reject Reason'
        if table_select == 2:
            self.fields['select_data'].queryset = Supplier.objects.filter(customer_id=customer_id)
            self.fields['select_data'].label = 'Supplier'
            self.fields['reject_data'].queryset = Return_Reason.objects.all()
            self.fields['reject_data'].label = 'Reason for Return'
        if table_select == 3:
            self.fields['select_data'].queryset = Consumer.objects.filter(customer_id=customer_id)
            self.fields['select_data'].label = 'Customer'
            self.fields['reject_data'].queryset = Return_Reason.objects.all()
            self.fields['reject_data'].label = 'Reason for Return'

Reply all
Reply to author
Forward
0 new messages