Я создаю свое первое приложение с Django, и мне еще предстоит многому научиться, но сейчас я полностью застрял и мне нужна помощь. У меня есть модель для клиентов и билетов. У меня так, что разные пользователи могут сохранять новых клиентов / билеты и просматривать их данные на панели мониторинга только после входа в систему. Однако при создании нового билета есть опция выпадающего списка, чтобы выбрать клиента для билета - и текущий пользователь может чтобы увидеть каждого пользователя клиентов.
Вот код, я поделюсь большим количеством кода, если это необходимо, но я думаю, что это охватывает то, что у меня происходит ...
forms.py
class TicketForm(ModelForm):
class Meta:
model = Ticket
fields = ['number', 'customer','date_created','work_description','mechanics','status']
views.py
def createTickets(request):
form = TicketForm()
if request.method == 'POST':
form = TicketForm(request.POST)
if form.is_valid():
newticket = form.save(commit=False)
newticket.shopowner = request.user
newticket.save()
return redirect('tickets')
context = {
'form': form
}
return render(request, 'createticket.html', context)
models.py
class Ticket(models.Model):
def default_number():
no = Ticket.objects.count()
return no + 1
shopowner = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
number = models.CharField(max_length=30, unique=True, default= default_number)
customer = models.ForeignKey(Customer, default=1, on_delete= models.SET_DEFAULT, blank=True)
date_created = models.DateField(default=timezone.now)
work_description = models.TextField(verbose_name="Service Details: ")
mechanics = models.ForeignKey(Mechanic, default=1, on_delete=models.DO_NOTHING, blank=True, verbose_name="Mechanic")
status = models.BooleanField(default=True, verbose_name="Open Ticket")
class Meta:
verbose_name_plural = "Tickets"
Мне нужен только внешний ключ клиента отображать клиентов текущего пользователя (или «владельца магазина») - то же самое для механика c и, в конечном итоге, автомобиля, но я могу это выяснить, когда узнаю, как получить данные клиента для отображения правильных данных.