在shell中创建多对多关系
这是我的模型:
我想用脚本初始化它
页面包含模板
class Template(models.Model):
Nom = models.CharField(max_length=200, blank=True)
contenu = models. TextField(max_length=80000, blank=True)
Note_divers = models.ManyToManyField('note.Note_divers', related_name='Template_Note_divers_notes_Note_divers', blank=True)
def ___str__(self):
return self.Nom
def __unicode__(self):
return self.Nom
class Page(models.Model):
Template = models.ManyToManyField(Template, null=True, blank=True)
self_url = models.ManyToManyField('lien.Lien', related_name='pages_lien_self', null=True, blank=True)
Categorie = models.ManyToManyField(Categorie_Page, null=True, blank=True)
Liens = models.ManyToManyField('lien.Lien', related_name="Liens sur la page", null=True, blank=True)
Nom = models.CharField(max_length=200)
和我的初始化脚本:
主要目标是创建某些页面
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.db.models.loading import cache as model_cache
if not model_cache.loaded:
model_cache.get_models()
from pages.models import Page, Template
import settings
t1 = Template(Nom="template_index",contenu="""bienvenue<br><a href="../logout/">logout</a>""")
t1.save()
p = Page(Nom="index",Template=t1)
p.save()
t2 = Template(Nom="template_indexvide", contenu="""
<form method="post" action=".">{% csrf_token %}
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="login" />
</form>"""
)
t2.save()
p = Page(Nom="indexvide",Template=t2)
p.save()
它给了我:
TypeError: 'Template' is an invalid keyword argument for this function
问候 布西埃
here is my model :
I would like to initialise it with a script
A page contain a template
class Template(models.Model):
Nom = models.CharField(max_length=200, blank=True)
contenu = models. TextField(max_length=80000, blank=True)
Note_divers = models.ManyToManyField('note.Note_divers', related_name='Template_Note_divers_notes_Note_divers', blank=True)
def ___str__(self):
return self.Nom
def __unicode__(self):
return self.Nom
class Page(models.Model):
Template = models.ManyToManyField(Template, null=True, blank=True)
self_url = models.ManyToManyField('lien.Lien', related_name='pages_lien_self', null=True, blank=True)
Categorie = models.ManyToManyField(Categorie_Page, null=True, blank=True)
Liens = models.ManyToManyField('lien.Lien', related_name="Liens sur la page", null=True, blank=True)
Nom = models.CharField(max_length=200)
and my initialisation script :
The main goal is to create certain pages
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.db.models.loading import cache as model_cache
if not model_cache.loaded:
model_cache.get_models()
from pages.models import Page, Template
import settings
t1 = Template(Nom="template_index",contenu="""bienvenue<br><a href="../logout/">logout</a>""")
t1.save()
p = Page(Nom="index",Template=t1)
p.save()
t2 = Template(Nom="template_indexvide", contenu="""
<form method="post" action=".">{% csrf_token %}
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="login" />
</form>"""
)
t2.save()
p = Page(Nom="indexvide",Template=t2)
p.save()
And it gave to me :
TypeError: 'Template' is an invalid keyword argument for this function
Regards
Bussiere
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法在实例化时声明 ManyToMany。您需要先定义并保存实例,然后添加关系。
(另请注意命名约定:字段小写,多对多复数。)
You can't declare a ManyToMany on instantiation. You need to define and save the instance first, then add the relationships.
(Note also naming conventions: lower case for fields, plural for many-to-many.)