Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Django 使用表单和其他来源的数据填充模型字段_Django - Fatal编程技术网

Django 使用表单和其他来源的数据填充模型字段

Django 使用表单和其他来源的数据填充模型字段,django,Django,我得到了一个代表用户财务账户的模型: class Account(models.Model): currencies_list = [currency.alpha_3 for currency in pycountry.countries] currencies_tuples = ((currency, currency) for currency in currencies_list) user = models.ForeignKey(User) name =

我得到了一个代表用户财务账户的模型:

class Account(models.Model):
    currencies_list = [currency.alpha_3 for currency in pycountry.countries]
    currencies_tuples = ((currency, currency) for currency in currencies_list)

    user = models.ForeignKey(User)
    name = models.CharField(max_length=50)
    currency = models.CharField(max_length=3, choices=currencies_tuples)
    initial_balance = models.DecimalField(max_digits=10, decimal_places=2)
    current_balance = models.DecimalField(max_digits=10, decimal_places=2)
我希望允许用户使用以下视图创建新帐户:

def new_account(request):
    if request.method == "POST":
        form = AccountForm(request.POST)
        if form.is_valid():
            account = form.save(commit=False)
            account.save()
            return redirect('index')
    else:
        form = AccountForm()
        return render(request, 'expenses/new_account.html', {'form': form})
及表格:

class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['name', 'currency', 'initial_balance']
我只允许用户填写三个字段:
name
currency
initial\u balance
。我希望自动填写
user
current\u balance
字段:
user
通过复制当前记录的用户ID和
current\u balance
通过复制用户为
初始\u balance
字段提供的值


我可以请您为我指出正确的方向吗?

很高兴我能帮忙。干杯
if form.is_valid():
    account = form.save(commit=False)
    account.user = request.user
    account.current_balance = form.cleaned_data.get('initial_balance')
    account.save()
    return redirect('index')