【发布时间】:2014-07-09 07:52:57
【问题描述】:
class Model1(models.Model):
username = models.CharField(max_length=100,null=False,blank=False,unique=True)
password = models.CharField(max_length=100,null=False,blank=False)
class Model2(models.Model):
name = models.ForeignKey(Model1, null=True)
unique_str = models.CharField(max_length=50,null=False,blank=False,unique=True)
city = models.CharField(max_length=100,null=False,blank=False)
class Meta:
unique_together = (('name', 'unique_str'),)
我已经通过 django-admin 页面在 Model1 中填写了 3 个示例用户名-密码
在我看来,我将这个列表作为
userlist = Model1.objects.all()
#print userlist[0].username, userlist[0].password
for user in userlist:
#here I want to get or create model2 object by uniqueness defined in meta class.
#I mean unique_str can belong to multiple user so I'm making name and str together as a unique key but I dont know how to use it here with get_or_create method.
#right now (without using unique_together) I'm doing this (but I dont know if this by default include unique_together functionality )
a,b = Model2.objects.get_or_create(unique_str='f3h6y67')
a.name = user
a.city = "acity"
a.save()
【问题讨论】:
-
您好,您正在将您的 Model 类扩展到 Model1 和 Model2。您已经为模型 2 创建了 a、b 对象。您在这里遇到什么问题?
-
这个问题真的没有意义。
unique_together不是方法,而是约束。你不调用它,也不用它做任何事情。
标签: python django python-2.7 django-models django-views