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')