在Django中,处理hashtag类不会返回HttpResponse对象。它没有返回任何结果

2024-05-23 14:56:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始学习Django了,我不知道如何处理HttpResponseRedirect()。你知道吗

以下是配置文件.html。你知道吗

<form method="post" action="post/">
    {% csrf_token %}
    <div class="col-md-8 col-md-offset-2 fieldWrapper">
        {{ form.text.errors }}
        {{ form.text }}
    </div>
    {{ form.country.as_hidden }}
    <div>
        <input type="submit" value="post">
    </div>
</form>

正如您在代码片段上看到的,当我单击submit按钮时,它会转到http://localhost:8000/user/sapphire/post/我猜。你知道吗

以下是中的代码片段网址.py。你知道吗

from tweets.views import PostTweet

urlpatterns = [
    url(r'^user/(\w+)/$', Profile.as_view()),
    url(r'^user/(\w+)/post/$', PostTweet.as_view()),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

如您所见,当我单击submit按钮时,我们导航到中的PostTweet类视图.py. 你知道吗

以下是中的代码片段视图.py。你知道吗

from django.shortcuts import render
from django.views.generic import View
from .models import Tweet
from user_profile.models import User
from .forms import TweetForm

class PostTweet(View):
    def post(self, request, username):
        form = TweetForm(self.request.POST)
        if form.is_valid():
            user = User.objects.get(username = username)
            tweet = Tweet(text = form.cleaned_data['text'], user = user, country = form.cleaned_data['country'])
            tweet.save()
            words = form.cleaned_data['text'].spilt(" ")
            for word in words:
                if word[0] == "#":
                    hashtag, created = HashTag.objects.get_or_create(name = word[1:])
                    hastag.tweet.add(tweet)
        return HttpResponseRedirect('/user/' + username)

如您所见,当我单击submit按钮时,我猜它将转到http://localhost:8000/user/sapphire/,并呈现我添加的另一条tweet但它不工作,出现异常。你知道吗

ValueError at /user/sapphire/post/, Exception Value: The view tweets.views.PostTweet didn't return an HttpResponse object. It returned None instead.

我该怎么办。老实说,我不知道标签是什么意思。在另一个教程中,为了在django中使用hashtag,我必须安装和设置hashtag模块,但是我没有安装。请告诉我如何处理这个错误并了解hashtag。你知道吗

谢谢您的时间。


Tags: 代码textfromimportdivformasusername