Используйте content_object для добавления объекта вместо object_id, в общих отношениях
У меня есть модель (профиль), которая имеет общую связь с другой моделью (член) в другом приложении. Когда я хочу добавить новый объект профиля, я должен использовать object_id, который является полем, которое показывает ID того объекта члена, который имеет связь с этим объектом профиля. Я хочу использовать другое поле вместо этого, например, у меня есть поле content_object, которое показывает именно сам объект. Есть ли способ использовать это поле (content_object) вместо object_id feild.
profiling.models.Profile:
class Profile(models.Model):
#objects = ProfileManager()
MAN = 'M'
WOMAN = 'W'
OTHER = 'O'
GENDER_TYPE = [
(MAN, 'Man'),
(WOMAN, 'Woman'),
(OTHER,'Other'),
]
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.EmailField(unique=True)
phone = models.CharField(max_length=30)
birthdate = models.DateField()
gender = models.CharField(max_length=1,choices=GENDER_TYPE)
address = models.TextField()
profile_image = models.ImageField(null=True, blank=True)
#to define generic relation
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField(unique=True)
content_object= GenericForeignKey()
def __str__(self) :
return f'{self.first_name} {self.last_name}'
ticketing.models.Member:
class Member(models.Model):
username = models.CharField(max_length=100, unique=True)
def __str__(self) -> str:
return self.username
class Meta:
ordering = ['username']