Django Queryset不返回任何对象

我正在尝试获取由公司用户创建的工作对象。到目前为止,我尝试过的方法仅返回空查询集。

如何按用户/公司过滤作业对象?当我将get_success_url方法添加到创建视图时,它停止工作。我一直在盘旋,当我使细节视图工作时,创建视图停止工作,然后当我修复创建视图时,MyList视图停止工作。

我正在使用的当前视图:

class MyJobs(ListView):
model = Job
template_name = 'jobs/my_job_list.html'
context_object_name = 'myjobs'

def get_queryset(self):
    jobs = Job.objects.filter(company_name__owner=self.request.user)
    return jobs,print(jobs)

其他视图:

class JobDetailView(DetailView):
model = Job
context_object_name = 'job'
template_name = 'jobs/job_detail.html'
queryset = Job.objects.all()

def get_object(self,queryset=None):
    obj = super().get_object()
    obj.save()
    return obj

def success_url(self):
    return reverse('jobs:job_details',kwargs={'pk': self.object.pk})

def get_context_data(self,**kwargs):
    context = super(JobDetailView,self).get_context_data(**kwargs)
    context['job_dockets'] = JobDocket.objects.all()
    return context

class JobCreateView(LoginRequiredMixin,CreateView):
model = Job
form_class = JobForm
template_name = 'jobs/job_create.html'

def get_success_url(self):
    return reverse('jobs:job_details',kwargs={'pk': self.object.pk})

网址:

path('myjobs/',MyJobs.as_view(),name='my_jobs'),

工作模式:

class Job(models.Model):
JOB_TYPE = (
    ('1','Service'),('2','Repair'),('3','Quotation'),('4','Consultation'),('5','Report'),('6','Design'),)

accOUNT_TYPE = (
    ('1','Existing Customer'),'Charge to account'),'New Customer'),'Pre-Paid/C.O.D'),'Issued and acc App'),)

company_name = models.ForeignKey(Company,related_name='jobs',verbose_name="Company Name",on_delete=models.CASCADE)
job_reference = models.CharField(max_length=50,blank=False)
contact_person = models.CharField(max_length=50)
contact_number = models.IntegerField()
contact_person_email = models.EmailField(max_length=100,blank=True,null=True)
site_address = models.CharField(max_length=100)
job_type = models.CharField(choices=JOB_TYPE,max_length=50,default='1')
account_type = models.CharField(choices=accOUNT_TYPE,default='1')
job_details = models.CharField(max_length=1000)
created = models.DateTimeField(default=now,blank=True)

def __str__(self):
    return str(self.company_name)

def get_absolute_url(self):
    return reverse('jobs:detail',kwargs={'pk': self.pk})

用户和公司模型:

class User(AbstractBaseUser,PermissionsMixin):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    phone_number = models.CharField(max_length=15)
    email = models.EmailField(max_length=250,unique=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    last_login = models.DateTimeField(null=True,blank=True)
    date_joined = models.DateTimeField(auto_now_add=True)
    objects = UserManager()

    username_FIELD = 'email'
    EMAIL_FIELD = 'email'

    def __str__(self):
        return self.first_name

    def get_absolute_url(self):
        return "/users/%i/" % self.pk


class Company(models.Model):
    owner = models.ForeignKey(User,on_delete=models.CASCADE)
    company_name = models.CharField(max_length=100,unique=True)
    company_address = models.CharField(max_length=100,unique=True)
    company_website = models.URLField(blank=True,null=True)
    company_verified = models.BooleanField(default=False)

    def __str__(self):
        return self.company_name
zhaiyawei88 回答:Django Queryset不返回任何对象

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2923926.html

大家都在问