Вход под другим пользователем дает все, что создано суперпользователем, вместо того, чтобы давать пустой Альбом и Первичную модель
У меня есть login страница и register страница, где пользователь может создать аккаунт и войти в свой аккаунт, проблема в том, что: когда я вхожу под другим пользователем, он дает мне все, что создано суперпользователем или другими пользователями, вместо того, чтобы показать пустую страницу, которая могла бы позволить мне создать свежий альбом и Primary для нового пользователя, так же как Facebook, когда вы создаете аккаунт и входите, он покажет вам пустую страницу в вашем аккаунте. Нет друзей нет новых сообщений и т.д. Как я могу это сделать?
представления входа:
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect('home')
else:
messages.info(request, 'Invalid Credential')
return redirect('login')
else:
return render(request, 'login.html')
представление регистра:
def register(request):
if request.method == 'POST':
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
password2 = request.POST['password2']
if password == password2:
if User.objects.filter(email=email).exists():
messages.info(request, 'Email or user name Already taking')
return redirect('register')
elif User.objects.filter(username=username).exists():
messages.info(request, 'username is taken')
return redirect('register')
else:
user = User.objects.create_user(username=username, email=email,
password=password)
user.save();
return redirect('login')
else:
messages.info(request, 'Password Not Match')
return redirect('register')
return redirect ('/')
else:
return render(request, 'signup.html')
модели:
class Album(models.Model):
image = models.ImageField(null=False, blank=False)
name = models.CharField(max_length=100, null=False, blank=False)
def __str__(self):
return self.name
class Primary(models.Model):
profilePicture = models.ImageField(blank=False, null=False)
firstName = models.CharField(max_length=25, blank=False, null=False)
sureName = models.CharField(max_length=25, blank=False, null=False)
lastName = models.CharField(max_length=25, blank=False, null=False)
address = models.CharField(max_length=50, blank=False, null=False)
classOf = models.CharField(max_length=20, blank=False, null=False)
yearOfGraduations = models.CharField(max_length=20, blank=False, null=False)
hobbies = models.TextField(blank=False, null=False)
dateOfBirth = models.CharField(max_length=20)
year = models.ForeignKey(Album, on_delete=models.CASCADE)
def __str__(self):
return self.firstName
шаблоны альбомов:
<div class="container">
<div class="row">
<div class="col-md-3">
<a href="{% url 'post_create' %}">Create Album</a>
</div>
<!--Albums-->
{% for my_album in albums %}
<div class="col-md-9">
<div class="card" style="width: 18rem;">
<img src="{{ my_album.image.url }}" alt="" class="card-img-top">
<div class="card-body">
<p>{{ my_album.name }}</p>
<br>
<a href="{% url 'view-Album' my_album.pk %}">viewAlbum</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
представление альбома:
def primary(request):
albums = Album.objects.all()
return render(request, 'primary.html', {'albums': albums})
шаблоны viewAlbum:
<div class="container">
<div class="row">
<div class="col">
<a href="{% url 'students' %}" class="btn btn-primary">Create Students</a>
</div>
</div>
</div>
<br>
<div class="container">
<div class="row justify-content-center">
{% for prima in primaries %}
<div class="col">
<div class="card my-2" style="width: 18rem;">
<img src="{{ prima.profilePicture.url }}" alt="" class="card-img-top">
<div class="card-body">
<p>{{ prima.firstName }}</p>
<br>
<a href="{% url 'view-Student' prima.pk %}">view Students</a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
видВидАльбома:
def viewAlbum(request, pk):
post = get_object_or_404(Album, id=pk)
my_album = Album.objects.get(id=pk)
primaries = Primary.objects.filter(year_id=my_album.pk)
return render(request, 'viewAlbum.html', {'primaries': primaries, 'post':post,
'my_album':my_album})
вы можете добавить ForeignKey к Album:
class Album(models.Model):
image = models.ImageField(null=False, blank=False)
name = models.CharField(max_length=100, null=False, blank=False)
user = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE)
затем сохраните каждый альбом с пользователем, создавшим его.
А затем отфильтруйте альбом в представлении:
def primary(request):
albums = Album.objects.filter(user=request.user)
return render(request, 'primary.html', {'albums': albums})