Как дважды соединить одну модель с другой моделью?
В моем проекте есть две модели. Это будет небольшое и простое приложение для отправки тикетов в службу поддержки.
Первая модель предназначена для авторов постов/тикетов
class Autor(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, unique=True)
service_group = models.BooleanField(default=False)
active = models.BooleanField(default=True)
def __str__(self):
return self.user.username
Второе - для билетов. Это будет только часть, но вы поймете, что я имею в виду...
class Ticket(models.Model):
added_date = models.DateField('added date')
added_time = models.TimeField('added time')
topic = models.CharField(max_length=400, unique=False)
description = models.TextField()
post_author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='post_author')
status = models.ForeignKey(Status, on_delete=models.CASCADE, default=1)
open_date = models.DateField('open date', default='1900-01-01')
open_time = models.TimeField('open time', default='00:00')
service = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='service')
close_date = models.DateField('close date', default='1900-01-01')
close_time = models.TimeField('close time', default='00:00')
def __str__(self):
return self.topic
Однако, таким образом, подключение модели Author не работает.
Cannot assign "1": "Ticket.service" must be a "Author" instance.
Пожалуйста, помогите мне правильно подключить его, чтобы он работал.
я думаю, что ваша ошибка заключается в том, что в модели Ticket вместо экземпляра author вводится значение id, если хотите использовать id, попробуйте этот пример для вставки сервиса с id:
Ticket(service_id="your data id")
или использовать экземпляр, как в этом примере:
get_author = Autor.objects.get(id="author id")
Ticket(service=get_author)