【问题标题】:django.core.exceptions.FieldError: Unknown field(s) (model) specified for Postdjango.core.exceptions.FieldError:为 Post 指定的未知字段(模型)
【发布时间】:2021-06-17 17:47:51
【问题描述】:

这些是 py 文件(错误表示为 Post 指定的未知字段(模型))

views.py

from django.db import models
from django.shortcuts import render
from django.views.generic import ListView, DetailView, CreateView
from .models import Post
from .forms import Post_form
# Create your views here.

#def home(request):
#    return render(request, 'home.html', {})

class HomeView(ListView):
    model = Post
    template_name = 'home.html'

class ArticleDetailView(DetailView):
    model = Post
    template_name = 'article_details.html'

class AddPostView(CreateView):
    model = Post
    form_class = Post_form
    template_name = 'add_post.html'
    #fields = '__all__'

forms.py

from django import forms
from django.forms import widgets, ModelForm
from django import forms
from .models import Post

class Post_form(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title','title_tag', 'model', 'body')
         
    widgets = {
        'title' : forms.TextInput(attrs={'class':'form-control'}),
        'title_tag' : forms.TextInput(attrs={'class':'form-control'}),
        'author' : forms.Select(attrs={'class':'form-control'}),
        'title' : forms.Textarea(attrs={'class':'form-control'})
    }

models.py

from typing import ChainMap
from django.db import models
from django.contrib.auth.models import User
from django.db.models.fields import CharField
from django.urls import reverse

# Create your models here.

class Post(models.Model):
    title = models.CharField(max_length=255)
    title_tag = models.CharField(max_length=255)
    author = models.ForeignKey(User, on_delete=models.CASCADE) #Delete Post when User is deleted
    body = models.TextField()

    def __str__(self):
        return self.title + ' | ' + str(self.author) #returns 'title | author' in admin page

    def get_absolute_url(self):
        return reverse("article_detail", args=(str(self.id)))
    

错误

File "/urls.py", line 3, in <module>
    from .views import AddPostView, ArticleDetailView, HomeView
  File "/views.py", line 5, in <module>
    from .forms import Post_form
  File "/forms.py", line 6, in <module>
    class Post_form(forms.ModelForm):
  File "/models.py", line 276, in __new__
    raise FieldError(message)
django.core.exceptions.FieldError: Unknown field(s) (model) specified for Post

我是 django 新手,仍在学习。由于此处的错误消息令人困惑,因此卡在这里很长时间。有什么解决办法吗? 我指的是 YouTube 链接 - https://youtu.be/6-XXvUENY_8 编辑 - models.py 添加了

【问题讨论】:

  • 添加您的模型,以便我们提供帮助
  • 编辑并添加了models.py

标签: python django django-models


【解决方案1】:

您的 class Post(models.Model) 没有名称为 model 的字段

来自您的模型表单

fields = ('title','title_tag', 'model', 'body')

您的 Post 模型类应如下所示

class Post(models.Model):
    title = ...
    title_tag = ...
    model = ... # HERE
    body = ...

所以要么确保该字段存在,要么从字段tuple中删除“模型”

【讨论】:

  • 使用这个 -> fields = ('title', 'title_tag', 'body')
【解决方案2】:
fields = ('title','title_tag', 'model', 'body')

您需要将“模型”字段添加到您的模型字段

class Post(models.Model):
    title = 
    title_tag = 
    model = 
    body = 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2015-02-19
    • 2015-04-24
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多