Почему мои поля модели django не работают?
Я не думаю, что это признание существования моих полей. Вот мой 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)
Когда я запускаю его, я получаю эту ошибку: "портфолио.запас: "заказ" относится к" имени", полю, которое не существует."Когда я комментирую мета-функцию и запускаю ее, она работает нормально до тех пор, пока на сайте администратора, где я пытаюсь создать биржевой объект, поля не появляются.
Я совершенно сбит с толку тем, что происходит.1 ответ:
Проблема заключается в вашем импорте
*
.
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)