Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django-将用户ID添加到UpdateView_Python_Django_Django Forms_Django Views - Fatal编程技术网

Python django-将用户ID添加到UpdateView

Python django-将用户ID添加到UpdateView,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我有一些使用ModelForms的UpdateView。每个对象对用户都有一个外键,因此我可以将每个用户的数据分开。当我尝试更新表单上的数据时,我得到: 属性错误位于/financials/transaction/update/4 “模块”对象没有属性“用户” 创建对象工作得很好。是更新给了我错误 其中一个模型和视图如下所示: # Model class Transaction(models.Model): item_description = models.CharField(max_

我有一些使用ModelForms的UpdateView。每个对象对用户都有一个外键,因此我可以将每个用户的数据分开。当我尝试更新表单上的数据时,我得到:

属性错误位于/financials/transaction/update/4 “模块”对象没有属性“用户”

创建对象工作得很好。是更新给了我错误

其中一个模型和视图如下所示:

# Model
class Transaction(models.Model):
    item_description = models.CharField(max_length=255)
    payment_type = models.CharField(max_length=1, choices=PAYMENT_CHOICES, verbose_name="Payment Type")
    amount = models.DecimalField(max_digits=8, decimal_places=2, verbose_name="Estimated Amount")
    actual_amount = models.DecimalField(max_digits=8, decimal_places=2, verbose_name="Actual Amount")
    due_date = models.DateField(verbose_name="Due Date")
    is_credit = models.BooleanField(verbose_name="Is Asset")
    is_paid = models.BooleanField(verbose_name="Paid/Received?")
    account = models.ForeignKey(Account)
    user = models.ForeignKey(User)

#ModelForm
class TransactionForm(ModelForm):
    class Meta:
        model = Transaction
        fields = ['is_paid', 'item_description', 'due_date', 'amount', 'actual_amount', 'is_credit', 'account',]

#View
class TransactionUpdate(UpdateView):
    model = Transaction
    form_class = TransactionForm
    template_name = 'finances/transaction_update.html'

    def __init__(self, **kwargs):
        self.kwargs = kwargs

    def form_valid(self, form):
        transaction = form.save(commit=False)
        transaction.user = self.request.user
        transaction.save()
        return super(TransactionUpdate, self).form_valid(form)

谢谢,

我认为这不是初始化属性。尝试更改
\uuuu init\uuuu()方法-

def __init__(self, **kwargs):
    self.kwargs = kwargs
    return super(TransactionUpdate, self).__init__(**kwargs)

我认为这不是我的财产。尝试更改
\uuuu init\uuuu()方法-

def __init__(self, **kwargs):
    self.kwargs = kwargs
    return super(TransactionUpdate, self).__init__(**kwargs)