다른 장고/파이썬 질문이 있습니다. 내가 이런 식으로 보이는 models.py 있어요. 내가 {{invoices.client_contract_number }}
에 대한 보면 내가 장고 알고장고에 대한 장고 질문
class Client(models.Model):
client_number = models.PositiveIntegerField()
name = models.CharField(max_length=80)
address = models.CharField(max_length=250)
telephone = models.CharField(max_length=20)
fax = models.CharField(max_length=20)
email = models.EmailField()
alternative_name = models.CharField(max_length=80, blank=True, null=True)
alternative_address = models.CharField(max_length=250, blank=True, null=True)
alternative_telephone = models.CharField(max_length=20, blank=True, null=True)
alternative_email = models.EmailField(blank=True, null=True)
def __unicode__(self):
return unicode(self.client_number)
class Contract(models.Model):
client_number = models.ForeignKey(Client)
client_contract_number = models.PositiveIntegerField()
start_date = models.DateField()
end_date = models.DateField()
contract_type = models.IntegerField(verbose_name = "Contract Types", choices = CONTRACT_TYPE_CHOICES)
contract_status =models.IntegerField(verbose_name = "Contract Status", choices = CONTRACT_STATUS_CHOICES)
exception = models.DecimalField(max_digits=5, decimal_places=2)
uplift_percentage = models.DecimalField(max_digits=5, decimal_places=2)
payment_day = models.DateField()
payment_type = models.IntegerField(verbose_name = "Payment Type", choices = PAYMENT_TYPE_CHOICES)
late_payment = models.IntegerField(verbose_name = "Late Payment Change", choices = LATE_PAYMENT_CHOICES)
late_payment_change_rate = models.DecimalField(max_digits=5, decimal_places=2)
contract_value = models.DecimalField(max_digits=20, decimal_places=2)
monthly_value = models.DecimalField(max_digits=20, decimal_places=2)
def __unicode__(self):
return unicode (self.client_contract_number)
class Invoice(models.Model):
transaction_type = models.IntegerField(verbose_name = "Transaction type", choices = TRANSACTION_TYPE_CHOICES)
invoice_number = models.CharField(max_length=16)
date = models.DateField()
client_contract_number = models.ForeignKey(Contract)
invoice_contact = models.CharField(max_length=80)
invoice_net = models.DecimalField(max_digits=16, decimal_places=2)
invoice_vat = models.DecimalField(max_digits=16, decimal_places=2)
invoice_gross = models.DecimalField(max_digits=16, decimal_places=2)
payment_date = models.DateField()
special_notes = models.CharField(max_length=128)
def __unicode__(self):
return self.invoice_number
, 나는 클라이언트 계약 번호를 얻을. 하지만 특정 인보이스에 대해 알고 싶다고 가정 할 때 고객 이름을 어떻게 찾을 수 있습니까? 인보이스에 클라이언트의 foregin 키 값이 없기 때문에 {{invoice.name}}을 (를) 수행 할 수 없습니다.
편집 : 다음은 내 의견
@login_required
def homepage(request):
invoices_list = Invoice.objects.all()
invoice_name = invoices_list.client_contract_number.client_number.name
return render_to_response(('index.html', locals()), {'invoices_list': invoices_list }, context_instance=RequestContext(request))
그리고 오류입니다. 이 조인을 통해
'QuerySet' object has no attribute 'client_contract_number'
'client_contract_number'는 (는) 숫자처럼 보입니다. 'client_number'는하지 않습니다. –
@Dominic Roger : 'client_contract_number'라는 두 개의 필드가 있습니다. 'Invoice' 모델의 하나는 ForeignKey이고,'Contract'의 값은 정수입니다. –
전 이런 식으로 시도한 것 같지만 작동하지 않았습니다. 내 views.py에서 어떻게 작성했는지 생각합니다. 내 견해에 무엇이 필요할까요? – Shehzad009