Djanog отображает объекты, специфичные для пользователя
Я решил последнюю проблему. Теперь я протестировал некоторые вещи и столкнулся с проблемой. Я хочу отображать объекты, специфичные для пользователя. Если пользователь вводит свои данные (например, номер), я хочу отобразить в html шаблоне только номер телефона пользователя, а не кого-то другого. Чтобы пользователь мог видеть только свой номер.
Я создал это.
forms.html
<form method='POST' action="." enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<button type='submit' class=''>Submit</button>
</form>
<p>{% if details.phone %} {{details.phone}} {% else %} {% endif %} </p>
<p> {{ request.user }} </p>
views.py
def edit_profile(request):
details = UserProfile.objects.all()[0]
try:
profile = request.user.userprofile
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
if request.method == 'POST':
form = UserProfileForm(request.POST, instance=profile)
if form.is_valid():
form.save()
return redirect('/')
else:
form = UserProfileForm(instance=profile)
return render(request, 'forms.html', {'form': form, 'details': details})
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(blank=True)
phone = models.CharField(max_length=10, blank=True)
address = models.CharField(max_length=1024)
age = models.PositiveIntegerField(blank=True, null=True)
gender = models.IntegerField(default=1)
С {{ request.user }} работает нормально, показывает текущее имя пользователя, вошедшего в систему. А с {{ details.phone }} Я хочу просто отобразить номер, который пользователь ввел в поле телефона. Но в настоящее время по умолчанию отображается номер администратора. Даже если я ввожу новый номер для пользователя, он все равно показывает номер администратора.
Нужно ли что-то изменить, чтобы отображался только номер, введенный конкретным пользователем?