Django Forms : HiddenInput

DJANGO


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

 

            Related