Hidden input field
Hidden input field is rendered as hidden field in the template which doesn't require input from the user. Note : Default value should be maintained in the model or default value should be passed in form instance before rendering or else error will be issued during form validation as these items are not visible.
class stock_dividend_f(ModelForm):
class Meta:
model = stock_dividend_m
fields = '__all__'
widgets = {'stock_code': forms.HiddenInput(),'divamt': forms.HiddenInput()}
models.py
class stock_dividend_m(models.Model):
portfolio = models.ForeignKey(Portfolio_m, on_delete=models.CASCADE,verbose_name='portfolio name')
stocklist = models.ForeignKey(StockList_m, on_delete=models.CASCADE,verbose_name='Stock Code')
divdate = models.DateField()
divpershare = models.DecimalField('Dividend per Share',max_digits=10, decimal_places=2 , default = 0 )
totshare = models.IntegerField('No of Shares',default = 0)
divamt = models.DecimalField('Total Dividend',max_digits=10, decimal_places=2 , default = 0 )
stock_code = models.CharField('Stock Code',max_length = 50)
comments = models.TextField('Comments', default = '' ,blank = True)
forms.py
class stock_dividend_f(ModelForm):
class Meta:
model = stock_dividend_m
fields = '__all__'
widgets = {'stock_code': forms.HiddenInput(),'divamt': forms.HiddenInput()}
view.py
def adddividend(request,portfolio_id='',stock_id=''):
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = stock_dividend_f(request.POST)
# check whether it's valid:
if form.is_valid():
form.save(commit=True)
form = stock_dividend_f()
return HttpResponseRedirect('/wlist/')
# if a GET (or any other method) we'll create a blank form
else:
zstock = StockList_m.objects.get(id = stock_id)
zinitial = stock_dividend_m()
zinitial.portfolio_id = portfolio_id
zinitial.stocklist_id= stock_id
zinitial.stock_code = zstock.stock_code
zinitial.divdate = datetime.today()
form = stock_dividend_f(instance = zinitial)
zdivhis = stock_dividend_m.objects.filter(stocklist_id= stock_id)
return render(request, 'wlist/adddividend.html', {'form': form,'zhistory':zdivhis})