- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望当前登录的用户能够创建并保存这两个表单。第二种形式具有ManyToManyField 和ForeignKey 关系,如下所示。
目前,我尝试从 ChatGroupUser
ModelForm 查询当前用户。
使用当前代码,当我尝试访问该页面时,Django 会引发以下错误:
__init__() missing 1 required positional argument: 'user'
它说错误来自第 88 行,即:
form_user = ChatGroupUserForm()
Traceback (most recent call last):
File "/Users/macadmin/Documents/Django_fun4/Groupixx/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/Users/macadmin/Documents/Django_fun4/Groupixx/lib/python3.7/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Users/macadmin/Documents/Django_fun4/Groupixx/lib/python3.7/site-packages/django/core/handlers/base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/macadmin/Documents/Django_fun4/Groupixx/groupixx/core/views.py", line 88, in create_group
form_user = ChatGroupUserForm()
TypeError: __init__() missing 1 required positional argument: 'user'
class ChatGroup(models.Model):
name = models.CharField(max_length=100, blank=True, null=True)
group_admin = models.ForeignKey(User, on_delete=models.CASCADE, related_name='chat_group_admins')
is_active = models.BooleanField(default=True, null=True)
is_current = models.BooleanField(default=False, null=True)
class ChatGroupUser(models.Model):
user = models.ManyToManyField(User)
chat_group = models.ForeignKey(ChatGroup, on_delete=models.CASCADE, related_name='chat_group_users')
from django.contrib.auth import get_user_model
User = get_user_model()
class ChatGroupForm(forms.ModelForm):
class Meta:
model = ChatGroup
fields = ['name',]
class ChatGroupUserForm(forms.ModelForm):
class Meta:
model = ChatGroupUser
fields = ['user']
def __init__(self, user, *args, **kwargs):
super(ChatGroupUserForm, self).__init__(*args, **kwargs)
self.fields['user'].queryset = User.objects.filter(user=user)
def create_group(request):
if request.method == 'POST':
form_group = ChatGroupForm(request.POST)
form_user = ChatGroupUserForm(request.POST)
if form_group.is_valid():
create_form = form_group.save(commit=False)
create_form.group_admin = request.user
create_form.save()
form_user.save(commit=False)
form_user.user = user
form_user.save()
return redirect('core:group_list')
else:
form_group = ChatGroupForm()
form_user = ChatGroupUserForm()
context = {
'form_group':form_group,
'form_user': form_user
}
return render(request, 'core/create-group.html', context)
我将不胜感激任何帮助,我不确定为什么 django 会抛出错误以及为什么我无法创建和保存这两种表单。
最佳答案
这是因为你的init
函数有参数user
,
而您的 View 未通过用户
。
修复方法如下
在您看来:form_user = ChatGroupUserForm(user=request.user)
然后在您的表单中:
class ChatGroupUserForm(forms.ModelForm):
class Meta:
model = ChatGroupUser
fields = ['user']
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
super(ChatGroupUserForm, self).__init__(*args, **kwargs)
self.fields['user'].queryset = User.objects.filter(user=self.user)
希望它有效:)
关于python - Django2.1 : Queryset ModelChoice in a ModelForm then save two forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57847409/
我基于几个 ModelForm 元素创建了一个表单。除了图像字段。由于缺少 ImageField form.is_valid() 总是返回 False - 即使我将 request.FILES 传递给
我需要将 CSS 类分配给表单字段,我指的是这篇 SO 帖子: CSS styling in Django forms 但是,我无法让它与扩展另一个 ModelForm 的 ModelForm 一起工
我是 Django 的新手,正在使用这个项目来学习它。我能够保存日志记录,但多对多关系不起作用。 这个“创建” View 显示了正确的形式,包括带有所有列出的加密货币的多选框(来自加密模型)。提交表单
为了确保强制用户从下拉列表中选择一个有效的值(而不是无意中保留列表集中的第一个选项而不将其更改为正确的值),我在许多必填表单域中插入了空白的选项域。。Models.py。原始forms.py(显式定义
我正在尝试使用 ModelForm 创建一个简单的 CRUD。它工作正常,只是每次我编辑时,保存都会创建一个新的数据实例。所以我编辑并在数据库中获得了一个额外的行而不是更新的行。我不知道它如何知道如何
Django 在其 ModelAdmin 对象上有自定义的“操作”,但我找不到与 ModelForm 对象类似的东西。我正在使用 Django-CMS,因此似乎无法轻松访问对象的 ListView ,
我正在尝试创建一个表单变量。默认播放器的级别为 0,他可以更改名称。以后到了1级,就可以改名字和头像了。当他3级时,他可以改变名字、头像和工作。等等... 模型.py: class Player(mo
现在正在尝试解决一个有趣的问题。 我有一个带有 image 的 Django 模型字段不是必需的,但在创建新模型实例时设置为默认值。 class Product(models.Model):
我发现Django中的ModelForm非常易于使用,并且节省了大量开发时间。 但是,当我意识到is_valid实际上保存了ModelForm时,我陷入了困境!我想知道这是否是预期的行为,还是我做错了
我的 modelForm 遇到了一个小问题,它可以工作,但是如果我尝试使用自定义 html,当我尝试遍历 form.bairro 时会出现错误。 我的型号: class Bairro(mode
在我的模型中,我有; title = models.CharField(verbose_name="eBay Listing Title",max_length=56) 使用 ModelForm,标签
我有一个非常基本的模型,上面有一个 ImageField,还有一个用于上传该图像的 ModelForm。我的表单失败,说我的图像无效,但是如果我直接从 request.FILES 实例化模型的图像,它
好的,我一直盯着这个几个小时试图弄清楚发生了什么,但无济于事。 我正在尝试使用“instance”关键字创建一个 ModelForm 以将其传递给现有模型实例,然后保存它。 这是 ModelForm(
我有模特: class TestPolja(models.Model): class Meta: verbose_name = 'Test polja' int
有这个禁用属性。但我无法将其应用于模型表单字段。我不知道该怎么做。我可以轻松地将它添加到 forms.Form 中。但是因为我使用的是小部件,所以我不知道在哪里插入它。 https://docs.dj
如何在我的模型表单中只保存选定的字段?文档对我没有帮助我的表格: class ProfileForm(forms.ModelForm): class Meta: model =
这里的 Django 初学者在让表单工作时遇到了很多麻烦。是的,我已经完成了教程并浏览了很多网络 - 我所拥有的是我在这里和其他网站上找到的东西的混合。我使用的是 Python 2.7 和 Djang
我有一个模型和一个表单 (forms.ModelForm),其中有一个 ImageField。该模型类似于: class Business(models.Model): business_na
我有一些带有用户字段的模型。 为此,我想创建一个表单混合,它将添加 self.user 实例(在 View 中提供给表单)。这可能吗? 这是示例 class UserFormMixin(object)
这个问题已经有答案了: How to update an object from edit form in Django? (2 个回答) 已关闭 7 年前。 我需要一个表格,允许在计划中创建或添加
我是一名优秀的程序员,十分优秀!