Здравствуйте, я уже писал здесь, прежде чем я впервые в django python нуждается в некоторой помощи о том, как получить объекты пользователя, который в данный момент вошел в систему. У меня есть приложение с именем store, которое содержит модели с именем Store. Я просто хочу собрать список магазинов, созданных пользователем. Нужно ли что-то добавлять в setting.py?
Я действительно запутался в этом. Я также попытался использовать request.user и попытался отфильтровать объект, но я не смог этого сделать. Я размещаю свой код здесь, пожалуйста, просмотрите его и дайте мне знать.
Дайте мне знать, если вам нужно что-то еще понять.
views.py из магазинов приложение
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .forms import NewStore
from .models import Store
def store(request):
form = NewStore()
if request.method == 'POST':
form = NewStore(request.POST)
if form.is_valid():
form = form.save()
return redirect('stores_list')
else:
form = NewStore()
return render(request, "default/store.html", {'form': form})
@login_required()
def stores_list(request):
my_stores = Store.objects.all()
print(my_stores)
return render(request, "default/stores_list.html", {'my_list': my_stores})
models.py из магазинов приложений
from django.db import models
from django.contrib.auth import get_user_model
User = get_user_model()
class Store(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
lat = models.DecimalField(max_digits=50, decimal_places=20)
long = models.DecimalField(max_digits=50, decimal_places=20)
type = models.CharField(max_length=30)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.name
stores_list.html
{% extends 'default/base.html' %}
<html>
<head><title>E-Commerce App</title></head>
{% block content %}
<h1>Welcome to your profile</h1>
<h2>Stores List</h2>
<p>This is your store list</p>
<ul>
{% for s in my_list %}
<li> Store {{ s.id }}: {{ s.name }} </li>
{% endfor %}
</ul>
{% endblock %}
</html>