我想要做的是创建一个模型,而不是用于存储有关两个元素之间关系的数据。使用ManytoMany字段,我可以使用参数“through”并指定一个存储两个元素外键的模型,如下所示。
def MyModel(models.Model):
relation = models.ManyToManyField('AnotherModel', through='RelationModel')
def RelationModel(models.Model):
model1 = models.ForeignKey('MyModel')
model2 = models.ForeignKey('AnotherModel')
slug = models.CharField()
OnetoOne关系或ForeignKey关系的等价物是什么?我已经阅读了关于自定义管理器的文档以及关于SO的一些帖子,所以最后我很困惑,我不知道解决方案是什么。提前感谢您的帮助。
答案 0 :(得分:1)
你可以这样做
from products.models import VendorDetails
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile', on_delete=models.CASCADE)
user_location = models.CharField(max_length=50, null=True)
vendor_category = models.ManyToManyField(VendorDetails, through="UserProfileVendorCategory")
class UserProfileVendorCategory(models.Model):
user_profile = models.ForeignKey(UserProfile)
vendor_category = models.ForeignKey(VendorDetails)
location = models.CharField(max_length=256)