在Django中,如果你想创建一个模型,你可以按如下方式进行:
class SomeModel(models.Model):
a = models.CharField(max_length=10)
b = models.CharField(max_length=20)
c = models.CharField(max_length=30)
d = models.CharField(max_length=40)
e = models.CharField(max_length=50)
f = models.CharField(max_length=60)
现在,如果要在shell中创建实例,则必须执行以下操作:
> abcdef = SomeModel(a="stuff", b="stuff", c="stuff", d="stuff", e="stuff", f="stuff")
如果您必须继续创建具有长属性名称的模型实例,这会非常烦人。有没有办法像普通的Python对象那样简单地发送参数(就像在不必命名变量而只是按顺序发送变量一样)?
像这样:
> abcdef = SomeModel("stuff", "stuff", "stuff", "stuff", "stuff", "stuff")
正如您在 init 函数中使用标准Python类一样。
谢谢:)
这是我的实际Python模型:
class School(models.Model):
urn = models.CharField(max_length=6)
name = models.CharField(max_length=100)
house = models.CharField(max_length=50)
street = models.CharField(max_length=50)
county = models.CharField(max_length=50)
postcode = models.CharField(max_length=8)
def __unicode__(self):
return str(
'URN: ' + self.urn + ', ' +
'Name: ' + self.name + ', ' +
'House: ' + self.house + ', ' +
'Street: ' + self.street + ', ' +
'County: ' + self.county + ', ' +
'Postcode: ' + self.postcode + ', '
)
答案 0 :(得分:1)
您是否尝试过以下代码:
obj = SomeModel(None, "a_stuff", "b_stuff", "c_stuff", "d_stuff", "e_stuff", "f_stuff")
obj.save()
希望这些有所帮助。
答案 1 :(得分:0)
您可以通过
创建实例abcdef = SomeModel()
由于实例化不会触及数据库,因此您可以稍后分配值,然后执行.save()
。