模板代码无法在其他应用程序模板中工作

如何解决模板代码无法在其他应用程序模板中工作

我尝试学习Django,我敢肯定我的问题很愚蠢,但是我认为每个初学者都必须通过这条成功之路,当然还要借助专业人士的帮助。

另外,我有一个包含2个应用程序,配置文件和帖子的网站,在这个项目中,我可以在模板列表中(posts / main.html)看到我关注的人,问题是我也需要相同的列表另一个模板(profiles / main.html)。

我已经复制了一段代码,但是没有用。我真的不知道该如何更好地解释它,或者我不知道如何准确地搜索它。 我尝试了这个: 1.)如何在不同的应用程序模板中使用视图 2.)如何从其他应用程序视图导入视图 3.)等等,我读了所有内容,但找不到我想要的东西

非常感谢您的帮助。

POSTS APP

posts / models.py

class Post(models.Model):
    ...
    author = models.ForeignKey(Profile,on_delete=models.CASCADE)
    text = models.TextField(default='no text...')
    ...
    def __str__(self):
        return str(self.text)[:30]

posts / urls.py

from django.urls import path
from .views import posts_of_following_profiles,index,contact,about,category,PostListView,PostDetailView,post,detay
from profiles.views import ProfileListView
app_name="posts"

urlpatterns = [
    ...
    path('following/',ProfileListView.as_view(),name='posts-follow-view'),...
    ]

posts / views.py

def posts_of_following_profiles(request):
    
    # get logged in user profile
    profile = Profile.objects.get(user=request.user)

    # check who we are following
    users = [user for user in profile.following.all()]

    # initial values for variables
    posts = []
    qs = None

    # get the posts of people who we are following
    for u in users:
        p = Profile.objects.get(user=u)
        p_posts = p.post_set.all()
        posts.append(p_posts)
    
    # our posts
    my_posts = profile.profile_posts()
    posts.append(my_posts)

    # sort and chain qs and unpack the post list
    if len(posts)>0:
        qs = sorted(chain(*posts),reverse=True,key=lambda obj: obj.ilan_tarihi)


    return render(request,'posts/main.html',{'profile':profile,'posts':qs})

posts / main.html

这部分工作正常

<h3>list of followings</h3>
{% for p in profiles.following.all %}
<br>{{p}} <br>
{% endfor %}

个人资料应用

profiles / models.py

class Profile(models.Model):
    user = models.OnetoOneField(User,on_delete=models.CASCADE)
    following = models.ManyToManyField(User,related_name='following',blank=True)
    text = models.TextField(default='no text...')
    
    def profile_posts(self):
        return self.post_set.all()

    def __str__(self):
        return str(self.user.username)  

profiles / urls.py

from django.urls import path
from .views import ProfileListView,ProfileDetailView,follow_unfollow_profile
from posts.views import posts_of_following_profiles

app_name = 'profiles'

urlpatterns = [
    path('switch_follow/',follow_unfollow_profile,name='follow-unfollow-view'),path('portfolio/',posts_of_following_profiles,name='profile-list-view'),path('<pk>/',ProfileDetailView.as_view(),name='profile-detail-view'),]

profiles / views.py

def follow_unfollow_profile(request):
    if request.method=="POST":
        my_profile = Profile.objects.get(user=request.user)
        #profile_pk is the name of the input in detail.html
        pk = request.POST.get('profile_pk')
        obj = Profile.objects.get(pk=pk)

        if obj.user in my_profile.following.all():
            my_profile.following.remove(obj.user)
        else:
            my_profile.following.add(obj.user)
        return redirect(request.Meta.get('HTTP_REFERER'))
    return redirect('profiles:profile-list-view') 

profiles / main.html

我想要的代码无效(与posts / main.html中的代码相同)

<h3>list of followings</h3>
{% for p in profiles.following.all %}
<br>{{p}} <br>
{% endfor %} 

 

解决方法

在profiles / urls.py中,即使您已导入follow_unfollow_profile(view)。 尝试以下代码:

path('switch_follow /',views.follow_unfollow_profile,name ='follow-unfollow-profile')

这就是django能够设置路径但不能遵循views.py文件中提到的说明的原因。

还请确保

“ DIRS”:[TEMPLATE_DIR,],

包含在根目录的TEMPLATES部分下的settings.py文件中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?