我在 Django 中使用查询集 - 每当我运行服务器时,它都会出错。
TypeError: Field 'id' expected a number but got <django.db.models.query_utils.DeferredAttribute object at 0x000002B6ADE878D0
这是我的表单的查询集导致错误的原因。
我不知道是我的models.py还是我的forms.py有问题 我尝试在 Google 上查找这个DeferredAttribute 对象,但我真的没有看到任何对我有用的答案。
表格.py:
from .models import Task, Categories
from django import forms
from django.forms import ModelForm
from django.db.models import Q
class TaskForm(ModelForm):
task_title = forms.CharField(max_length=100)
task_description = forms.CharField(widget=forms.Textarea)
due_date = forms.DateTimeField()
is_completed = forms.BooleanField()
#categories = forms.ModelChoiceField(empty_label="---None---")
class Meta:
model = Task
fields = ['task_title', 'task_description', 'due_date', 'is_completed', 'categories', 'parent']
def __init__(self, user, …Run Code Online (Sandbox Code Playgroud) 我有一个基于阶级的观点。我在引导模式上使用 Ajax。为了避免页面刷新,我想使用基于类的视图返回 JSON 响应而不是 HTTP 响应,但我只看到了如何为基于函数的视图返回 JSON 响应。
视图.py:
from django.contrib.auth.mixins import LoginRequiredMixin
class TaskCreateView(LoginRequiredMixin, CreateView):
template_name = 'create.html'
form_class = TaskForm
success_url = reverse_lazy('task_list')
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs.update(user=self.request.user)
return kwargs
Run Code Online (Sandbox Code Playgroud)