Получение внешнего ключа модели Django
Я хочу подтвердить существование моего ForeignKey в клиентском приложении.
Структура клиентского приложения:
Проект
Client model.py
Client model.py Код:
class Client(models.Model):
primary_key = models.AutoField(primary_key=True)
unique_num = models.TextField(max_length=30)
name = models.TextField(max_length=30, default='Name Not Found')
number = models.TextField(max_length=30)
email = models.EmailField()
Структура почтового приложения:
Проект
model.py
Client model.py Код:
class ScheduledEmail(models.Model):
primary_key = models.AutoField(primary_key=True)
recipient_name = models.TextField()
subject = models.TextField()
message = models.TextField()
datetime_sent = models.TextField(max_length=20, default='Not Yet Sent')
datetime_created = models.TextField(max_length=20)
recipient_email = models.EmailField(max_length=50, default='Email Not Found')
sent = models.BooleanField(default=False)
recipient = models.ForeignKey(Client,
on_delete=models.CASCADE,
related_name='scheduled_emails_sent')
Если я понял, что вы хотите создать отношения "один к одному" для моделей client и email, вы можете сделать это, поместив на одну из двух моделей дополнительный атрибут models.OneToOneField.
пример:
class Client(models.Model):
primary_key = models.AutoField(primary_key=True)
unique_num = models.TextField(max_length=30)
name = models.TextField(max_length=30, default='Name Not Found')
number = models.TextField(max_length=30)
class ScheduledEmail(models.Model):
recipient_name = models.TextField()
subject = models.TextField()
message = models.TextField()
datetime_sent = models.TextField(max_length=20, default='Not Yet Sent')
datetime_created = models.TextField(max_length=20)
recipient_email = models.EmailField(max_length=50, default='Email Not
Found')
sent = models.BooleanField(default=False)
recipient = models.ForeignKey(Client,
on_delete=models.CASCADE,
related_name='scheduled_emails_sent')
client = models.OneToOneField(
Client,
on_delete=models.CASCADE,
primary_key=True,
)
Вы также можете проверить раздел One to One в документации Django.