Как отфильтровать контакты по пользователю, которому они принадлежат?

Мне нужно показать имена, принадлежащие только одному пользователю.

models.py

class Contact(models.Model):
    name = models.CharField(max_length=50, null=False, blank=False, unique=False)
    surname = models.CharField(max_length=50, null=True, blank=True, unique=False)
    father_name = models.CharField(max_length=50, null=True, blank=True, unique=False)
    dob = models.DateField(null=True, blank=True, unique=False)
    photo = models.ImageField(upload_to='static/photos/', null=True, blank=True)
    email = email = models.EmailField(max_length=254, null=True, blank=True, unique=False)
    phone_number = models.CharField(max_length=12, null=False, blank=False, unique=False)
    contact_belongs_to = models.ForeignKey(User, on_delete=models.CASCADE)

views.py

    def post(self, request:HttpRequest)->HttpResponse:
        form = ContactForm(request.POST)
        if form.is_valid():
            Contact.objects.create(name=form.cleaned_data['name'], surname=form.cleaned_data['surname'], father_name=form.cleaned_data['father_name'], dob=form.cleaned_data['dob'], photo=form.cleaned_data['photo'],
                 email=form.cleaned_data['email'], phone_number=form.cleaned_data['phone_number'], contact_belongs_to=request.user).save()
            return HttpResponse('OK')
        else:
            return render(request, 'contacts/contact_form.html', context={'form':form})

вот как 'contact_belongs_to' принимает значение->user

А когда пользователь хочет видеть только свои собственные контакты, я должен фильтровать их по 'contact_belongs_to' или нет?

Помогите, пожалуйста...

Вы можете сделать это двумя способами:

  1. Использование связанного имени в объекте User: request.user.contacts
  2. Фильтр Contact с использованием contact_belongs_to: Contact.objects.filter(contact_belongs_to=request.user)
Вернуться на верх