Супер новый для django, работающий над моим первым тестовым проектом.У меня есть приложение, которое называется клиенты.Внутри у меня есть несколько моделей.Когда я сейчас пытаюсь приступить к работе, двумя главными являются Customer_Info и Company_Info.На стороне шаблона я хочу получить информацию в цикле for из обоих шаблонов.Компании могут иметь несколько клиентов (контактов).Таким образом, внутри таблицы информации о клиентах я храню информацию о компании, которой они могут принадлежать.Некоторые клиенты не имеют этого идентификатора, поскольку они являются физическими лицами и не имеют ассоциации с компанией.
Вот две модели.
class Customer_Info(models.Model): #Name of the table
id = models.AutoField(primary_key=True)
cust_uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
first_name = models.CharField(max_length=32, blank=False)
middle_name = models.CharField(max_length=32, blank=True)
last_name = models.CharField(max_length=32, blank=False)
phone = models.CharField(max_length=10, blank=False)
email = models.CharField(max_length=64, blank=False)
address_1 = models.CharField(max_length=64, blank=True, null=True)
address_2 = models.CharField(max_length=64, blank=True, null=True)
city = models.CharField(max_length=16, blank=True, null=True)
state = models.CharField(max_length=2, blank=True, null=True)
zipcode = models.IntegerField(blank=True, null=True)
country = models.CharField(max_length=16, blank=True, null=True)
company_uuid = models.ForeignKey('company_info', to_field='company_uuid', db_column='company_uuid', on_delete=models.PROTECT, blank=True, null=True) # miht need a nullable defaul https://docs.djangoproject.com/en/2.1/ref/models/fields/#foreignkey
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, blank=False) # miht need a something else https://docs.djangoproject.com/en/2.1/ref/models/fields/#foreignkey
date_added = models.DateTimeField(auto_now=True)
def __str__(self):
return 'Customer ID: {0} | First Name: {1} | Last Name: {2} | Phone: {3} | Email: {4}'.format(self.cust_uuid, self.first_name, self.last_name, self.phone, self.email)
class Company_Info(models.Model):
id = models.AutoField(primary_key=True)
company_uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
company_name = models.CharField(max_length=64, blank=False)
website = models.CharField(max_length=200, blank=True, null=True)
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, blank=False) # miht need a something else https://docs.djangoproject.com/en/2.1/ref/models/fields/#foreignkey
date_added = models.DateTimeField(auto_now=True)
def __str__(self):
return 'Company ID: {0} | Company Name: {1}'.format(self.company_uuid, self.company_name)
Вот то, что у меня есть для моего просмотра.
def customers(request):
company_customer_info = {
'companies': Company_Info.objects.all(),
'customers': Customer_Info.objects.all(),
}
return render(request, 'customers/customers.html', company_customer_info)
А вот что у меня есть в шаблоне.
Вот что у меня работает, но я не знаю, как получить имя контакта ...
{% for company in companies %}
<tr>
<td>{{ company.id }}</td>
<td>{{ company.company_name }}</td>
<td>contact name here</td>
<td>{{ company.website }}</td>
<td>{{ company.date_added|date:"N d, Y" }}</td>
</tr>
{% endfor %}
На той же странице у меня тоже есть, и это работает.
{% for customer in customers %}
<tr>
<td>{{ customer.id }}</td>
<td>{{ customer.first_name }}</td>
<td>{{ customer.last_name }}</td>
<td>{{ customer.company_uuid.company_name}}</td>
<td>{{ customer.phone }}</td>
<td>{{ customer.email }}</td>
<td>{{ customer.date_added|date:"N d, Y" }}</td>
</tr>
{% endfor %}
Любая помощь очень ценится, я пытался обернуть голову вокруг документации Django по наборам запросов,но я не очень далеко ...