【问题标题】:How do I get all the elements with a specific ID from an SQLite table using Django?如何使用 Django 从 SQLite 表中获取具有特定 ID 的所有元素?
【发布时间】:2022-02-13 16:32:44
【问题描述】:

我是 SQLite 的初学者,我需要知道如何从 SQLite 表中选择所有元素并将它们放入列表中。这是我尝试过的:

<select name="users" id="users">
    {% for user_reg in db.user_registration_models %}
    {% if user.is_authenticated %}
    <option value="/all_users/{{ user_reg.id }}">{{ user_reg.username }}</option>
    {% endif %}
    {% endfor %}
</select> 

提前感谢您的回答!

【问题讨论】:

    标签: python html django


    【解决方案1】:

    如果您想打印当前用户的用户名(如果他是经过身份验证的用户),您可以返回数据库中的所有用户或只返回经过身份验证的用户,请使用以下代码:

    {% if request.user.is_authenticated %}
       <select name="users" id="users">
        <option >{{ request.user.username }}</option>
       </select> 
    {% endif %}
    
    

    如果您需要打印当前用户的用户名,只需使用 request.user.username 但是.. 如果您想从当前用户创建的 db (model) 中选择任何内容,例如当前用户创建的帖子可以通过以下方式进行:

    在model.py文件中。

    from django.db import models
    from django.contrib.auth.models import User
    
    class PostModel(models.Model):
        user= models.ForeignKey(User, on_delete=models.CASCADE)
        title = models.CharField(max_length=250)
        text = models.CharField(max_length=5000)
        
    
    

    在 veiws.py 中

    from .modal import PostModel
    from django.shortcuts import render
    
    def home_view(request):
     if request.user.is_authenticated:
        posts = PostModel.objects.filter(user=request.user)
        return render(request, 'index.html', {'posts': posts})
     else:
        #you can return anything instead of redirect the user to login page
        # if the user not authenticated
    
        return render(request, 'login.html', {})
    

    在 index.html 中

    {% for item in posts %}
    
     <div class='post-container' >
       <div class='user'> {item.user.first_name }</div>
       <div class='title'> {item.title}</div>
       <div class='text'> {item.text}</div>
     
     </div>
    
    {% endfor %}
    
    
    

    用户过滤方法以获取具有特定参数的任何内容,例如

    posts = PostModel.objects.filter(user__id=1)
    posts = PostModel.objects.filter(title='my post')
    users = User.objects.filter(first_name='first name')
    

    等等。阅读文档中的过滤器功能: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#filter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多