gpt4 book ai didi

python - 为什么我的 Django 模型字段不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:46 25 4
gpt4 key购买 nike

我不认为它承认我的领域的存在。这是我的 models.py:

from django.db.models import *
from django.contrib import admin
from django.forms import *

class Stock(Model):
name = CharField(max_length=60)

class Meta:
ordering = ["name"]

def __unicode__(self):
return self.name

admin.site.register(Stock)

当我运行它时,出现此错误:“portfolio.stock:‘ordering’ 指的是‘name’,一个不存在的字段。”当我注释掉元函数并运行它时,它工作正常,直到管理站点,当我尝试创建一个库存对象时,这些字段没有显示。

我对发生的事情完全感到困惑。

最佳答案

问题是您的 * 导入。

django.db.models.CharField 被替换为 django.forms.CharField:

>>> from django.db.models import *
>>> CharField
<class 'django.db.models.fields.CharField'>
>>> from django.forms import *
>>> CharField
<class 'django.forms.fields.CharField'>

所以,实际上 name = CharField(max_length=60) 定义了一个表单字段而不是模型字段 - 它打破了一切并使这个错误变得微妙。


解决方案:删除不必要的 forms 导入并在导入中明确说明:

from django.db import models
from django.contrib import admin


class Stock(models.Model):
name = models.CharField(max_length=60)

class Meta:
ordering = ["name"]

def __unicode__(self):
return self.name

admin.site.register(Stock)

关于python - 为什么我的 Django 模型字段不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580231/

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