Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户名变成指向用户配置文件Django的链接_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

用户名变成指向用户配置文件Django的链接

用户名变成指向用户配置文件Django的链接,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,****在url.py部分添加了用户视图配置文件,并添加了my users view.py*** 嘿,伙计们,我试过几次问这个问题,但我觉得我不够彻底。在过去的几天里,我尝试了很多不同的方法。我想知道是否有人能给我指出正确的方向。我希望post.post中使用的用户名变成该用户配置文件的链接。现在这是我得到的输出 正如你所见,我在帖子中得到了用户名,但它没有显示为指向该用户配置文件的链接,它只是显示为纯文本,我希望@devil成为指向该用户配置文件的链接。。。在后端,虽然系统确实发现@devi

****在url.py部分添加了用户视图配置文件,并添加了my users view.py***

嘿,伙计们,我试过几次问这个问题,但我觉得我不够彻底。在过去的几天里,我尝试了很多不同的方法。我想知道是否有人能给我指出正确的方向。我希望post.post中使用的用户名变成该用户配置文件的链接。现在这是我得到的输出

正如你所见,我在帖子中得到了用户名,但它没有显示为指向该用户配置文件的链接,它只是显示为纯文本,我希望@devil成为指向该用户配置文件的链接。。。在后端,虽然系统确实发现@devil是数据库中的一个用户,但在我的前端模板中它并没有显示为链接

这是我正在使用的my views.py,以便后端在post.post中找到任何用户

def get(self, request):
        form = HomeForm()
        posts = Status1.objects.filter(user=request.user).order_by('-id')
        users = User.objects.all()
        args = {'form':form, 'posts':posts, 'users':users}

        return render(request, self.template_name, args)

    def post(self, request):
        form = HomeForm(request.POST)
        users = User.objects.all()
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.save()
            for username in post.post.split():
                if username.startswith("@"):
                    user = User.objects.get(username=username)
                    username = user
                    print(username) #THIS PRINTS THE USERNAME IN THE TERMINAL SO THAT I KNOW IT'S PARSING THE POST FOR USERS MENTIONED IN THE POST WHEN SUBMITTED 

            text = form.cleaned_data['post']
            form = HomeForm()
            return redirect('home')


        context = {'form': form, 'text': text, 'users':users, 'username':username}
        return render(request, self.template_name, context)
这是我用来显示post.post的信息的前端模板,如上图所示。我不确定如何告诉模板,任何以@开头的用户名都应该是指向用户配置文件的链接,因为它从数据库中获取post.post信息

  {% for post in posts %}
         {{ post.post}}
  {% endfor %}
这是我的模特

from django.db import models
from django.contrib.auth.models import User

class Status1(models.Model):
    post = models.CharField(max_length=333)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now=True)
    blockchain = models.TextField()
这是我的URL.py


urlpatterns = [
    url(r'^$', HomeView.as_view(), name='home'),
    #path('', HomeView, name='home'),
    path('register/', user_views.register, name='register'),
    path('profile/', user_views.profile, name='profile'),
    path('admin/', admin.site.urls),
    path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]

这是适用于用户的my views.py

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            messages.success(request, f'Welcome {username}!') 
            return redirect('login')
    else:
        form = UserRegisterForm()
    return render(request, 'users/register.html', {'form': form})

def profile(request):
    return render(request, 'users/profile.html')

我一直在为这个问题绞尽脑汁,我想不出来。非常感谢有人帮助你的URL。py我没有看到任何看起来像用户配置文件视图的内容。链接应该指向哪里?我明白了,所以我需要先在url中添加链接,然后再继续?谢谢你是的,因为你需要路线和处理程序链接到某个地方。好的,谢谢你@Charnel会先完成的,你的一次生命拯救,我无法理解这一点,为了我的生命,我是如此迷失,至少现在我做到了direction@Charnel我添加了我的用户配置文件视图和url,你知道我接下来要做什么吗?非常感谢。