Django不加载固定装置

2024-09-30 16:21:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当我执行python loaddata lecteurs时,我没有错误,并且这个正常输出:Installed 2 object(s) from 2 fixture(s)。 问题是我在Django的shell中输入并尝试Lecteurs.objects.all()这将返回一个空数组。在

这就是Lecteur(模特)的样子:

class Lecteur(User):
    bibliotheque = models.ManyToManyField('bibliotheque.Livre')
    localisation = models.ForeignKey(Localisation)

yaml文件叫讲师.yaml公司名称:

^{pr2}$

其他的固定装置负荷正常。 希望你能帮我,我已经足够明确了。在


Tags: installeddjangofromyamlobjectsobjectmodels错误
1条回答
网友
1楼 · 发布于 2024-09-30 16:21:56

TL;DR

您的yaml可能创建错误或缺少其他User详细信息。在

解释

好的,所以我做了一个执行fixture的例子,对我有用。在

所以我最初是通过代码创建yaml的序列化,意思是:

跟随:

1.创建了一个示例模型,如下所示:

from django.db import models
from django.contrib.auth.models import User

class Lecteur(User):
    bibliotheque = models.CharField(max_length=100)
    localisation = models.IntegerField()

2.在Django Shell中,我执行了以下操作:

^{pr2}$

3.然后通过serializer创建一个yaml转储,并添加到文件try.yaml

from django.core import serializers
data = serializers.serialize("yaml", SomeModel.objects.all())
with open('try.yaml', 'w') as f:
    f.write(data)

接下来是最重要的部分,我的山药看起来怎么样?在

像这样:

- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 1
- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 2
- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 3

这里出现了一个小混乱,即使我得到Installed 3 object(s) from 3 fixture(s)和{}什么也没给。在

现在重要的事情来了:

我注意到,由于存在User模型继承,yaml是不完整的,因为django无法在获得数据时找到要填充的用户数据。在

所以,我做了这样的事情来从database获得完整的数据:

python manage.py dumpdata format "yaml" > try.yaml

当我通过加载yaml重新创建数据库时:

python manage.py loaddata try.yaml

我把数据放回数据库。这是因为User表数据存在于yaml中,因此django现在可以正确地填充数据库。在

这是我相同的try.yaml文件:

- fields: {app_label: contenttypes, model: contenttype, name: content type}
  model: contenttypes.contenttype
  pk: 4
- fields: {app_label: auth, model: group, name: group}
  model: contenttypes.contenttype
  pk: 2
- fields: {app_label: tester, model: lecteur, name: lecteur}
  model: contenttypes.contenttype
  pk: 7
- fields: {app_label: auth, model: permission, name: permission}
  model: contenttypes.contenttype
  pk: 1
- fields: {app_label: sessions, model: session, name: session}
  model: contenttypes.contenttype
  pk: 5
- fields: {app_label: sites, model: site, name: site}
  model: contenttypes.contenttype
  pk: 6
- fields: {app_label: auth, model: user, name: user}
  model: contenttypes.contenttype
  pk: 3
- fields: {domain: example.com, name: example.com}
  model: sites.site
  pk: 1
- fields: {codename: add_group, content_type: 2, name: Can add group}
  model: auth.permission
  pk: 4
- fields: {codename: change_group, content_type: 2, name: Can change group}
  model: auth.permission
  pk: 5
- fields: {codename: delete_group, content_type: 2, name: Can delete group}
  model: auth.permission
  pk: 6
- fields: {codename: add_permission, content_type: 1, name: Can add permission}
  model: auth.permission
  pk: 1
- fields: {codename: change_permission, content_type: 1, name: Can change permission}
  model: auth.permission
  pk: 2
- fields: {codename: delete_permission, content_type: 1, name: Can delete permission}
  model: auth.permission
  pk: 3
- fields: {codename: add_user, content_type: 3, name: Can add user}
  model: auth.permission
  pk: 7
- fields: {codename: change_user, content_type: 3, name: Can change user}
  model: auth.permission
  pk: 8
- fields: {codename: delete_user, content_type: 3, name: Can delete user}
  model: auth.permission
  pk: 9
- fields: {codename: add_contenttype, content_type: 4, name: Can add content type}
  model: auth.permission
  pk: 10
- fields: {codename: change_contenttype, content_type: 4, name: Can change content
      type}
  model: auth.permission
  pk: 11
- fields: {codename: delete_contenttype, content_type: 4, name: Can delete content
      type}
  model: auth.permission
  pk: 12
- fields: {codename: add_session, content_type: 5, name: Can add session}
  model: auth.permission
  pk: 13
- fields: {codename: change_session, content_type: 5, name: Can change session}
  model: auth.permission
  pk: 14
- fields: {codename: delete_session, content_type: 5, name: Can delete session}
  model: auth.permission
  pk: 15
- fields: {codename: add_site, content_type: 6, name: Can add site}
  model: auth.permission
  pk: 16
- fields: {codename: change_site, content_type: 6, name: Can change site}
  model: auth.permission
  pk: 17
- fields: {codename: delete_site, content_type: 6, name: Can delete site}
  model: auth.permission
  pk: 18
- fields: {codename: add_lecteur, content_type: 7, name: Can add lecteur}
  model: auth.permission
  pk: 19
- fields: {codename: change_lecteur, content_type: 7, name: Can change lecteur}
  model: auth.permission
  pk: 20
- fields: {codename: delete_lecteur, content_type: 7, name: Can delete lecteur}
  model: auth.permission
  pk: 21
- fields:
    date_joined: 2014-10-25 07:41:32.935000+00:00
    email: ''
    first_name: ''
    groups: []
    is_active: true
    is_staff: false
    is_superuser: false
    last_login: 2014-10-25 07:41:32.935000+00:00
    last_name: ''
    password: ''
    user_permissions: []
    username: User1
  model: auth.user
  pk: 1
- fields:
    date_joined: 2014-10-25 07:41:41.199000+00:00
    email: ''
    first_name: ''
    groups: []
    is_active: true
    is_staff: false
    is_superuser: false
    last_login: 2014-10-25 07:41:41.199000+00:00
    last_name: ''
    password: ''
    user_permissions: []
    username: User2
  model: auth.user
  pk: 2
- fields:
    date_joined: 2014-10-25 07:41:48.713000+00:00
    email: ''
    first_name: ''
    groups: []
    is_active: true
    is_staff: false
    is_superuser: false
    last_login: 2014-10-25 07:41:48.713000+00:00
    last_name: ''
    password: ''
    user_permissions: []
    username: User3
  model: auth.user
  pk: 3
- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 1
- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 2
- fields:
    bibliotheque: Hey
    groups: []
    localisation: 12
    user_permissions: []
  model: tester.lecteur
  pk: 3

理想情况下,django应该抱怨,但可能是个bug。不确定执行情况。在

请特别注意以下yaml代码:

- fields:
    date_joined: 2014-10-25 07:41:32.935000+00:00
    email: ''
    first_name: ''
    groups: []
    is_active: true
    is_staff: false
    is_superuser: false
    last_login: 2014-10-25 07:41:32.935000+00:00
    last_name: ''
    password: ''
    user_permissions: []
    username: User1
  model: auth.user
  pk: 1

该代码用于标识在创建自定义类之前必须添加的用户。在

相关问题 更多 >