Как получить все элементы с определенным 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