0
Django에서 첫 번째 앱을 만들고 있는데로드에 첨부 한 회사를 기반으로 '로드'를 쿼리하려고합니다. 여기에 문제의 모델이 있습니다.Django에서 쿼리에 문제가 발생했습니다.
class Load(models.Model):
company = models.ForeignKey(UserCompany, null=True,
on_delete=models.CASCADE)
load_number = models.IntegerField()
carrier = models.CharField(max_length=255)
pickup_date = models.DateField()
delivery_date = models.DateField()
shipper = models.CharField(max_length=255)
consignee = models.CharField(max_length=255)
po_number = models.CharField(max_length=255)
pu_number = models.CharField(max_length=255)
pieces = models.IntegerField()
description = models.TextField()
date_created = models.DateTimeField(blank=True, null=True)
def publish(self):
self.date_created = timezone.now()
self.save()
def __str__(self):
return str(self.load_number)
이제는 페이지에 목록을 표시하려고하지만 특정 회사에 연결된로드 만 표시하려고합니다. 사용자는 해당 회사에도 연결해야하므로 여기 내 사용자 모델이 있습니다.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class UserCompany(models.Model):
company_name = models.CharField(max_length=200)
def __unicode__(self):
return self.company_name
def __str__(self):
return self.company_name
# User Model
class UserProfileInfo(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# Additional Classes
profile_pic = models.ImageField(upload_to='profile_pics',
blank=True)
company = models.ForeignKey(UserCompany,
null=True,on_delete=models.CASCADE)
def __str__(self):
return self.user.username
그런 다음이보기 내에서 "로드"를 쿼리하려고합니다.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render, get_object_or_404
from django.shortcuts import redirect
import datetime
from django.conf import settings
from django.utils import timezone
from django.http import HttpResponse
from django.views.generic import View, DetailView
from easy_pdf.views import PDFTemplateResponseMixin
from loads.models import Load
from .forms import LoadForm
from users.models import UserCompany, UserProfileInfo
# Create your views here.
class PDFUserDetailView(PDFTemplateResponseMixin, DetailView):
model = Load
template_name = 'loads/load_pdf.html'
def load_list(request):
loads =
Load.objects.filter(company=request.company).order_by('date_created')
return render(request, 'loads/load_list.html', {'loads':loads})
사용자를 기반으로 쿼리를 실행할 수 있었으므로이 쿼리가 동일 할 것입니다. 그렇지 않다. 나는 회사를 잘못 참조하고 있다고 생각하고 어쩌면 원래 UserCompany 클래스로 2 단계 더 필터링해야 할 수도 있습니다. 그 방법은 확실하지 않습니다. 내가지고있어
오류 :
AttributeError: 'WSGIRequest' object has no attribute 'company'
와우, 당신에게 완벽하게 작동되도록 많은 감사 읽을 수있는 현재 요청에 대한 정보를 보유하고 있습니다. 그래서 실제 문제는 제가 회사 내에서 회사를 제대로 정의하지 못했다는 것입니다. 그 이유는 내가 회사가 아닌 사용자와 협력 할 수 있었던 이유이기도합니다. –
@KrisTryber 맞아. 다행스럽게 도울 수있어! – Mathyou