gpt4 book ai didi

python - 在 shell 中创建多对多关系

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:24 24 4
gpt4 key购买 nike

这是我的模型:
我想用脚本初始化它
一个页面包含一个模板

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

问候生意人

最佳答案

您不能在实例化时声明 ManyToMany。您需要先定义并保存实例,然后添加关系。

p = Page(nom="indexvide")
p.save()
p.templates.add(t2)

(另请注意命名约定:字段为小写,多对多为复数。)

关于python - 在 shell 中创建多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com