У меня есть несколько моделей классов. И некоторые классы имеют ограничивающие поля с другим классом. У каждого класса есть поле - автор. Мне бы хотелось, чтобы для каждого пользователя в поле формы отображались только те данные, которые были созданы этими авторами.
Например:
класс "TypeJob" имеет поле "author".
Пользователь Jhon создал TypJob - «Живопись».
Пользователь Alex создал TypJob - «Очистка».
Класс «Порядок» имеет ограничивающее поле - «name_typ_job»
Когда Джон хочет создать заказ, он открывает форму и щелкает поле «имя типа работы», он видит оба типа работы: живопись и уборка.
Мне бы хотелось, чтобы он видел и мог выбрать только «живопись» ». Потому что он автор.
Django 3 models.py
from django.db import models
from django.contrib.auth.models import User
from phonenumber_field.modelfields import PhoneNumberField
import requests
class TypJob(models.Model):
'''ТИп работ широкоформатная печать, цифровая и прочие'''
author = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name='Автор тип работы', null=True)
name_job = models.CharField('название', max_length=200)
class Customer(models.Model):
'''Клиент и данные клиента'''
author = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name='Автор клиента', null=True)
name = models.CharField('название', max_length=200)
name_full = models.CharField('Ф.И.О.', max_length=250)
tel_number = PhoneNumberField(verbose_name ='номер телефона', blank=True, null=True)
email = models.EmailField('почта', max_length=100, blank=True, null=True)
class Order(models.Model):
author = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name='Автор заказа', blank=True, null=True)
number_order = models.CharField('номер заказа', max_length=100)
date_create = models.DateTimeField(auto_now=True)
name = models.ForeignKey(Customer, on_delete = models.CASCADE, verbose_name='Заказчик', null=True)
name_order = models.CharField('название', max_length=200)
name_job = models.ForeignKey(TypJob, on_delete = models.CASCADE, verbose_name='тип работ', null=True)
views.py
class OrderCreateView(LoginRequiredMixin, CustomSuccessMessageMixin, CreateView):
model = Order
template_name = 'orders.html'
form_class = OrdertForm
success_url = reverse_lazy('orders')
forms.py
class OrderForm(forms.ModelForm):
class Meta:
model = Order
fields = (
'name_order',
'name_job',
)