Как получить все элементы с определенным ID из таблицы SQLite с помощью Django?

Я новичок в 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> 

Заранее спасибо за ответы!

Вы можете либо вернуть всех пользователей в базе данных, либо вернуть только аутентифицированных, если вы хотите вывести имя пользователя текущего пользователя, если он является аутентифицированным пользователем, выполните следующий код:

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

Если вам нужно вывести имя пользователя текущего пользователя, просто используйте request.user.username, но... Если вы хотите выбрать что-либо из базы данных (модели), созданной текущим пользователем, например, посты, созданные текущим пользователем, вы можете сделать это следующим образом:

В файле 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

Вернуться на верх