slug返回反向' view-question'用参数'('',)'未找到。尝试了1个模式
我在URL中使用 pk ,但我将其更改为slug。但是,每当我在问题中添加一个新问题模型时,页面会给我带来这样的错误: cranse for'view-question'用参数'(''',)找不到。尝试1个模式:['view/(?字段该错误已经消失,我可以在ViewQuestion模板和家庭模板中看到我的内容。但是,当我还添加了一个新的时,错误仍然出现在我的家庭模板中。我该如何解决此错误而不将一些文本添加到slug字段中,并给我slug URL。
class Question(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100, blank=False, null=False)
body = RichTextField(blank=False, null=False)
category = models.CharField(max_length=50, blank=False, null=False)
slug = models.SlugField(unique=True, max_length=50)
def __str__(self):
return str(self.title)
def viewQuestion(request, slug):
question = get_object_or_404(Question, slug=slug)
answers = Answer.objects.filter(post_id=question)
context = {'question':question, 'answers':answers}
return render(request, 'viewQuestion.html', context)
class My_Question(LoginRequiredMixin, CreateView):
model = Question
fields = ['title', 'body', 'category']
template_name = 'question.html'
success_url = reverse_lazy('index')
def form_valid(self, form):
form.instance.user = self.request.user
return super (My_Question, self).form_valid(form)
我的URL
path('view/<slug:slug>/', views.viewQuestion, name='view-Question'),
我的家庭模板:
<div class="container">
<div class="row justify-content-center">
{% for question in list_of_question reversed %}
<div class="col-md-4">
<div class="card my-3">
<div class="card-header">
<p class="card-title">{{question.user.username.upper}}</p>
</div>
<div class="card-body">
<a href="{% url 'view-Question' question.slug %}" style="text-decoration: none;">
<p class="card-title">{{question.title}}</p>
</a>
<h5>{{question.category}}</h5>
</div>
</div>
</div>
{%endfor%}
</div>
</div>
I'm Using pk in my urls but i change it to slug. But every time i added a new question in my Question model the page throws me an error like this: Reverse for 'view-Question' with arguments '('',)' not found. 1 pattern(s) tried: ['view/(?P[-a-zA-Z0-9_]+)/\Z'] but when i go to the admin and add some text in to the slug field the error is gone and i can be able to see my content in the viewQuestion template and home template. but when I also added a new one the error still appear in my home template. How can i solve this error without adding some text into the slug Field, and gives me the slug url please.
class Question(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100, blank=False, null=False)
body = RichTextField(blank=False, null=False)
category = models.CharField(max_length=50, blank=False, null=False)
slug = models.SlugField(unique=True, max_length=50)
def __str__(self):
return str(self.title)
def viewQuestion(request, slug):
question = get_object_or_404(Question, slug=slug)
answers = Answer.objects.filter(post_id=question)
context = {'question':question, 'answers':answers}
return render(request, 'viewQuestion.html', context)
class My_Question(LoginRequiredMixin, CreateView):
model = Question
fields = ['title', 'body', 'category']
template_name = 'question.html'
success_url = reverse_lazy('index')
def form_valid(self, form):
form.instance.user = self.request.user
return super (My_Question, self).form_valid(form)
my urls
path('view/<slug:slug>/', views.viewQuestion, name='view-Question'),
my home template:
<div class="container">
<div class="row justify-content-center">
{% for question in list_of_question reversed %}
<div class="col-md-4">
<div class="card my-3">
<div class="card-header">
<p class="card-title">{{question.user.username.upper}}</p>
</div>
<div class="card-body">
<a href="{% url 'view-Question' question.slug %}" style="text-decoration: none;">
<p class="card-title">{{question.title}}</p>
</a>
<h5>{{question.category}}</h5>
</div>
</div>
</div>
{%endfor%}
</div>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过在模型中的slugify添加保存功能并将其分配给我的标题字段来解决我的问题。
I solved my problem by adding save function with slugify in the models and assigned slugify to my title field.