Postgresql 如何修复django中的字段错误问题?

Postgresql 如何修复django中的字段错误问题?,postgresql,bootstrap-4,django-2.0,Postgresql,Bootstrap 4,Django 2.0,当我尝试使用下面的代码时,我尝试从列表页面导航到详细信息页面。我在声明字段错误时出错。为此,我尝试在模型中添加一个空的Slug字段,它显示了一个page not found错误 #url.py 从django.url导入路径 from.views导入(TaskListView、TaskDetailView) 应用程序名称='任务' URL模式=[ 路径(“”,TaskListView.as_view(),name='list'), 路径('/',TaskDetailView.as_view()

当我尝试使用下面的代码时,我尝试从列表页面导航到详细信息页面。我在声明字段错误时出错。为此,我尝试在模型中添加一个空的Slug字段,它显示了一个page not found错误

#url.py
从django.url导入路径
from.views导入(TaskListView、TaskDetailView)
应用程序名称='任务'
URL模式=[
路径(“”,TaskListView.as_view(),name='list'),
路径('/',TaskDetailView.as_view(),name='detail'),
] 
#views.py
从django.shortcuts导入渲染
从django.http导入HttpResponse
#在这里创建您的视图。
从django.views.generic导入ListView、DetailView、View
从.models导入Taskmanager
def home(请求):
返回呈现(请求“home.html”)
类TaskListView(ListView):
模板名称='Tasks.html'
模型=任务管理器
上下文\对象\名称='数据'
类TaskDetailView(DetailView):
模板名称='detail.html'
模型=任务管理器
上下文\对象\名称='数据'
#models.py
从django.db导入模型
从django.url反向导入
#在这里创建您的模型。
周数=(“周01”,“周01”),
(“week02”、“week02”),
(“03周”、“03周”),
(“第04周”、“第04周”),
(“第05周”、“第05周”),
(“06周”、“06周”),
(“第07周”、“第07周”),
(“第08周”、“第08周”),
(“09周”、“09周”),
(“第10周”、“第10周”),
(“第11周”、“第11周”),
(“第12周”、“第12周”),
(“第13周”、“第13周”),
(“第14周”、“第14周”),
(“第15周”、“第15周”),
(“第16周”、“第16周”),
(“第17周”、“第17周”),
(“第18周”、“第18周”),
(“第19周”、“第19周”),
(“week20”、“week20”),
(“week21”、“week21”),
(“第22周”、“第22周”),
(“第23周”、“第23周”),
(“第24周”、“第24周”),
(“第25周”、“第25周”),
(“第26周”、“第26周”),
(“第27周”、“第27周”),
(“第28周”、“第28周”),
(“第29周”、“第29周”),
(“第30周”、“第30周”),
(“第31周”、“第31周”),
(“第32周”、“第32周”),
(“第33周”、“第33周”),
(“第34周”、“第34周”),
(“第35周”、“第35周”),
(“第36周”、“第36周”),
(“第37周”、“第37周”),
(“第38周”、“第38周”),
(“第39周”、“第39周”),
(“第40周”、“第40周”),
(“第41周”、“第41周”),
(“第42周”、“第42周”),
(“第43周”、“第43周”),
(“第44周”、“第44周”),
(“第45周”、“第45周”),
(“第46周”、“第46周”),
(“第47周”、“第47周”),
(“第48周”、“第48周”),
(“第49周”、“第49周”),
(“第50周”、“第50周”),
(“第51周”、“第51周”),
(“第52周”、“第52周”),
(“第53周”、“第53周”),
)
类任务管理器(models.Model):
CurrentSprint=models.CharField(最大长度=10,默认值=“week01”,
选项=周数)
todaydate=models.DateField()
taskname=models.SlugField(最大长度=200)
testrun=models.URLField(最大长度=300)
注释=models.CharField(最大长度=300)
assignedto=models.EmailField(最大长度=70)
定义(自我):
返回self.taskname
def get_绝对_url(自身):
返回反向('Tasks:detail',kwargs={'slug':self.taskname})
#Tasks.html
我需要一个输出当我单击链接时,它需要导航到需要显示任务详细信息的详细信息页面。

尝试添加此链接

#views.py
class TaskDetailView(DetailView):
...
def get_object(self):
    instance = get_object_or_404(Taskmanager, slug=self.kwargs['slug'])
    return instance

#models.py
django.db.models.signals import pre_save

class Taskmanager(models.Model):
    ...
    taskname = models.CharField(max_length=200)
    slug = models.SlugField(max_length=100)
    ...

    def pre_save_Taskmanager_receiver(instance, *args, **kwargs):
        if not instance.slug:
            instance.slug = instance.taskname

    pre_save.connect(pre_save_Taskmanager_receiver, sender= Taskmanager)

# task.html
<a href="{% url 'Tasks:detail' slug=data.slug %}"> {{ data.todaydate }}</a>
#views.py
类TaskDetailView(DetailView):
...
def get_对象(自身):
实例=获取对象或404(Taskmanager,slug=self.kwargs['slug'])
返回实例
#models.py
django.db.models.signals导入预保存
类任务管理器(models.Model):
...
taskname=models.CharField(最大长度=200)
slug=型号。SlugField(最大长度=100)
...
def pre_save_Taskmanager_receiver(实例,*args,**kwargs):
如果不是instance.slug:
instance.slug=instance.taskname
pre_save.connect(pre_save_Taskmanager_receiver,sender=Taskmanager)
#task.html

Hi@Mint有任何更新吗。对不起,我回复晚了。现在我得到404错误页面。如何避免这种情况?您得到了不存在对象或现有对象的错误?请检查我的更新答案。请确保在保存实例时包含taskname,以便创建slug。出现以下错误:“pre_save_Taskmanager_receiver()缺少1个必需的位置参数:'self'”在定义中是self吗
def pre_save\u Taskmanager\u receiver(self、instance、*args、**kwargs):
#views.py
class TaskDetailView(DetailView):
...
def get_object(self):
    instance = get_object_or_404(Taskmanager, slug=self.kwargs['slug'])
    return instance

#models.py
django.db.models.signals import pre_save

class Taskmanager(models.Model):
    ...
    taskname = models.CharField(max_length=200)
    slug = models.SlugField(max_length=100)
    ...

    def pre_save_Taskmanager_receiver(instance, *args, **kwargs):
        if not instance.slug:
            instance.slug = instance.taskname

    pre_save.connect(pre_save_Taskmanager_receiver, sender= Taskmanager)

# task.html
<a href="{% url 'Tasks:detail' slug=data.slug %}"> {{ data.todaydate }}</a>