python - 将选定的用户分配给对象 Django
问题描述
以下代码将登录用户分配给对象,如何更改它以将下拉菜单中的选定用户分配给对象?
<form method='POST' action="{% url 'post:car' post.id %}">
{% csrf_token %}
<label for="select1"></label>
<select class="mdb-select md-form" id="select1" onChange="form.submit();">
<option value="" disabled selected>Assign</option>
{% for user in current_users %}
<option value="{{ user.id }}"> {{ user }} </option>
{% endfor %}
</select>
</form>
上述目标是将所选对象分配{{user.id}}
给{{post.id}}
urls.py是_
path('post/<int:tag>', views.assigned_post, name='car'),
已current_users
通过从views.py使用 注入来实现context['current_users'] = ProjectUser.objects.all()
views.py是_
def assigned_post(request, tag):
as_curr = get_object_or_404(Post, id=tag)
if request.method == 'POST':
if as_curr.assigned_to:
as_curr.assigned_to = None
as_curr.save()
else:
as_curr.assigned_to = request.user # < -- Assign to drop down user instead of current user
as_curr.save()
return HttpResponseRedirect(reverse('post:tasks'))
models.py是_
class Post(models.Model):
assigned_to = models.ForeignKey(ProjectUser, related_name="assigned_user", blank=True, null=True,
on_delete=models.CASCADE)
我尝试了什么:
as_curr.assigned_to = request.POST.get('user_id')
但意见正在None
回归request.POST.get('user_id')
解决方案
因为您的模型将assigned_to 指定为ProjectUser 的ForeignKey,这意味着您必须使用ProjectUser 实例填充它,因此会出现错误。因此,也许在保存之前尝试获取 ProjectUser:
# views.py
user = ProjectUser.objects.get(id=request.POST.get('user_id'))
as_curr.assigned_to = user
as_curr.save()
推荐阅读
- scala - 来自 Chisel(火箭芯片)的 sbt.TrapExitSecurityException 错误消息
- java - JPA - 同一类的列数错误。应该是 2
- python - 在 Elasticsearch 上出现连接错误
- javascript - 使用带有 nodejs 和 express 的 parse 和 back4app 上传和检索图像
- java - 从另一个列表中查找(自定义)列表中的对象
- c - uint8_t* - 指向 RGB 图像地址的指针
- java - Java:如何在不使用 Sort() 的情况下基于自定义对象 ArrayList 创建排序字符串 ArrayList
- python - 如何将抓取的数据发送到 postgresql 数据库
- bash - 如何在 s-nail 中设置 Content-Type?
- javascript - React Google Maps 不导入