如何从特定用户django python获取数据
在/添加介质时的完整性错误/ 唯一约束失败:用户\媒体。用户\ id唯一约束失败:用户\媒体。用户\ id 唯一约束失败:用户\u媒体。用户\u id 我试图从特定用户处获取数据,但我从数据库中的所有用户处获取所有数据。如何从特定用户django python获取数据,python,django,Python,Django,在/添加介质时的完整性错误/ 唯一约束失败:用户\媒体。用户\ id唯一约束失败:用户\媒体。用户\ id 唯一约束失败:用户\u媒体。用户\u id 我试图从特定用户处获取数据,但我从数据库中的所有用户处获取所有数据。 views.py @login_required def profile(request): if request.method == 'GET': media_images = Media.objects.all() con
views.py
@login_required
def profile(request):
if request.method == 'GET':
media_images = Media.objects.all()
context = {
'media_images':media_images,
}
return render(request, 'users/profile.html', context)
@login_required
def add_media(request):
if request.method == 'POST':
form = MediaForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user= request.user
form.save()
return redirect('http://127.0.0.1:8000/')
else:
form = MediaForm()
return render(request, 'users/add_media.html', {'form':form})
models.py
class Media(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
image_name = models.CharField(max_length=50)
image_description = models.CharField(max_length=80)
image_image = models.ImageField(upload_to='media', default='default.jpg')
def __str__(self):
return f'{self.user.username} Media'
模板
{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section container">
<div class="row justify-content-md-between ml-4 align-items-center ">
<div class='col-md-'>
<img width='100' src="{{user.profile.image.url}}" alt=""><span class='ml-4'>{{ user.username }}</span>
</div>
<div class='mr-4'>
<a class='mr-4' href="{% url 'add-media'%}">Add media</a>
<a href="#">Settings</a>
</div>
</div>
</div>
<div class="content-section">
<h2 class='center'>Your Medias</h2>
{% for media in media_images %}
<div class="profile-content-and-manage">
<div class="profile-content-div">
<p class='profile-paragraph-image paragraph-image-name'>{{media.image_name}}</p>
<p class='profile-paragraph-image paragraph-image-description'>{{media.image_description}} </p>
<img height="97px" class='profile-image' src='{{media.image_image.url}}'>
</div>
<div class="profile-manage-div">
<p class="profile-paragraph-image profile-paragraph-image-delete">X</p> <span class="profile-paragraph-image">Edit</span>
</div>
</div>
{% endfor %}
</div>
{% endblock content %}
signals.py
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
您可以过滤文件,以便
用户
引用请求。用户
:
@login_required
def profile(request):
media_images = Media.objects.filter(user=request.user)
context = {
'media_images':media_images,
}
return render(request, 'users/profile.html', context)
@需要登录\u
def配置文件(请求):
media\u images=media.objects.filter(用户=request.user)
上下文={
“媒体图像”:媒体图像,
}
返回render(请求'users/profile.html',context)
过滤文件,以便用户
引用请求。用户
:
@login_required
def profile(request):
media_images = Media.objects.filter(user=request.user)
context = {
'media_images':media_images,
}
return render(request, 'users/profile.html', context)
@需要登录\u
def配置文件(请求):
media\u images=media.objects.filter(用户=request.user)
上下文={
“媒体图像”:媒体图像,
}
返回render(请求'users/profile.html',context)
Now everythingdisappeared@Pamade:您是否在媒体
记录中指定了任何用户数据(是否存在用户id
列与NULL
不同的记录?)。您登录的用户是否有任何记录?好的,当我在forms.py字段中添加“user”字段时,它起作用了。现在,当我想添加媒体时,我需要选择特定的用户。我可以在不选择用户的情况下执行此操作吗?我可以自动选择已登录的用户吗?@Pamake:不,只要在表单有效时设置用户,那么form.instance.user=request.user
在您创建Media
对象的视图中(当然不是您列出媒体的视图)。@Pamake:您可以编辑您的问题并共享完整的回溯吗。乍一看,我认为这是一个模板,而不是一个有问题的视图disappeared@Pamade:您是否在媒体
记录中指定了任何用户数据(是否存在用户id
列与NULL
不同的记录?)。您登录的用户是否有任何记录?好的,当我在forms.py字段中添加“user”字段时,它起作用了。现在,当我想添加媒体时,我需要选择特定的用户。我可以在不选择用户的情况下执行此操作吗?我可以自动选择已登录的用户吗?@Pamake:不,只要在表单有效时设置用户,那么form.instance.user=request.user
在您创建Media
对象的视图中(当然不是您列出媒体的视图)。@Pamake:您可以编辑您的问题并共享完整的回溯吗。乍一看,我认为是模板,而不是视图出了问题。