Я потратил несколько часов, пытаясь решить эту проблему. Дайте мне знать, если у вас есть идеи. Проблема: Я определил две модели. Один для контактов и один для компании. Могу создать один контакт и компанию отдельно. Как вывести контакты из одной компании. Например, если у меня есть contact1, contact2, работающие в CompanyA, я хотел бы видеть их в списке в профиле companyA.
Контакты
models.py
class Contact(models.Model):
name = models.CharField(max_length=250)
company = models.ForeignKey(Company, default=1, on_delete=models.CASCADE)
views.py
def create_contact(request):
form = ContactForm(request.POST or None, request.FILES or None)
if form.is_valid():
contact = form.save(commit=False)
contact.save()
return render(request, 'contacts/detail.html', {'contact': contact})
context = {
"form": form,
}
return render(request, 'contacts/create_contact.html', context)
Компания
models.py
class Company(models.Model):
name = models.CharField(max_length=250)
views.py
def create_company(request):
form = CompanyForm(request.POST or None, request.FILES or None)
if form.is_valid():
company = form.save(commit=False)
company.user = request.user
company.company_logo = request.FILES['company_logo']
file_type = company.company_logo.url.split('.')[-1]
file_type = file_type.lower()
if file_type not in IMAGE_FILE_TYPES:
context = {
'company': company,
'form': form,
'error_message': 'Image file must be PNG, JPG, or JPEG',
}
return render(request, 'company/create_company.html', context)
company.save()
return render(request, 'company/company_detail.html', {'company': company})
context = {
"form": form,
}
return render(request, 'company/create_company.html', context)
Company_detail. html
<table id="dtBasicExample" class="table table-striped table-hover">
<thead>
<tr>
<th>#</th>
<th>Name</th>
</tr>
</thead>
<tbody>
{% for contact in contacts.all %}
<tr>
<td>{{ contact.id }}</td>
<td>{{ contact.name }}</td>
{% endfor %}
</tr>
</tbody>
</table>
Ниже приведен второй файл views.py для контактов, который я создал, но не решил его.
Контакты 2
просмотров .py
def create_contact(request, company_id):
form = ContactForm(request.POST or None, request.FILES or None)
company = get_object_or_404(Company, pk=company_id)
if form.is_valid():
companys_contacts = company.contact_set.all()
for s in company_songs:
if s.contact_title == form.cleaned_data.get("contact_title"):
context = {
'company': company,
'form': form,
'error_message': 'You already added that contact',
}
return render(request, 'contacts/create_contact.html', context)
contact = form.save(commit=False)
contact.company = company
contact.photo = request.FILES['photo']
file_type = contact.photo.url.split('.')[-1]
file_type = file_type.lower()
if file_type not in IMAGE_FILE_TYPES:
context = {
'company': company,
'form': form,
'error_message': 'Image file must be PNG, JPG',
}
return render(request, 'contacts/create_contact.html', context)
contact.save()
return render(request, 'contacts/detail.html', {'company': company})
context = {
'company': company,
'form': form,
}
return render(request, 'contacts/create_contact.html', context)