2017-05-31 12 views
0

私はDjangoの初心者です。私はどのように私はユーザーのために印刷するためにforms.pyの変数にアクセスすることができます尋ねたい。私はmodels.pyがユーザー用のデータベースを作成することを知っています。私はそれを印刷する変数は、チェックボックスの複数選択フィールドです。私は、テーブルにmultiplechoiceの値を表示する必要があります。これは、保存ボタンのための私のview.pyあるdjangoはフォームとモデルの間に問題があります

user  = models.ForeignKey(User) 
title  = models.CharField('title', max_length=100, default='', blank=True, help_text='Use an indicative name, related to the chosen parameters') 
type = models.CharField('forecast type', choices=FORECAST_TYPES, max_length=20, default="backtest") 

#input characteristics 
price_1_min    = models.FloatField('1. Price, min', default=0.1, validators=[MinValueValidator(0.1), MaxValueValidator(20000)]) 
price_1_max    = models.FloatField('1. Price, max', default=20000, validators=[MinValueValidator(0.1), MaxValueValidator(20000)]) 

class BacktestForm(forms.ModelForm): 

    period_start = forms.DateField(initial=datetime.datetime.today().date() - datetime.timedelta(days=365+16), widget=forms.widgets.DateInput(format="%Y/%m/%d"), input_formats=["%Y/%m/%d"]) 
    period_end  = forms.DateField(initial=datetime.datetime.today().date() - datetime.timedelta(days=16), widget=forms.widgets.DateInput(format="%Y/%m/%d"), input_formats=["%Y/%m/%d"]) 

    market = forms.MultipleChoiceField(required=False,widget=CheckboxSelectMultiple, choices=MARKET_CHOICES) 
    sector = forms.MultipleChoiceField(required=False,widget=CheckboxSelectMultiple, choices= MEDIA_CHOICES) 
class Meta: 
    model = Parameters 

Models.py:

クラスのパラメータ(models.Model)The image is here これはForm.pyです。

def backtest(request, pk=None): 

if pk is not None: 
    param = get_object_or_404(Parameters, pk=pk, user=request.user) 
    form = BacktestForm(request.POST or None, instance=param) 
else: 
    form = BacktestForm(request.POST or None) 

    if request.method == 'POST': 
    if form.is_valid(): 
     if 'save' in request.POST: 
      obj = form.save(commit=False) 
      obj.user = request.user 
      obj.type = "backtest" 
      obj.save() 
      messages.info(request, 'Saved!') 
      return redirect(obj.get_backtest_url()) 
+0

ようなものです。フルモデルとフルフォームを投稿してください。 – e4c5

+0

私はあなたの質問が何であるか、または何がイメージと何を関係しているのか理解できません。それはフォームを表示しません。 –

+0

画像はHTML形式の表で、ユーザーが入力した出力を印刷する必要があります。マーケット列を除くすべては大丈夫ですが、forms.pyで定義したので、チェックボックスのタイプです。市場(チェックボックス変数)とmodels.pyの関係をどうやって作るのか分かりません – faro

答えて

1

フルフォームクラスを投稿してください。私はあなたのモデルとフォームがどのようにつながっているか分かりません。モデルにアクセスするには、フォームの代わりにモデルフォームが必要な場合があります。あなたがフォームこれはジャンゴ・休息としてタグ付けするべきではありませんを使用している場合

だから、それらを接続する方法は、この

forms.py

from .models import Parameter 
class ParameterForm(forms.ModelForm): 
    market = forms.MultipleChoiceField(required=False,widget=CheckboxSelectMultiple, choices=MARKET_CHOICES) 
    sector = forms.MultipleChoiceField(required=False,widget=CheckboxSelectMultiple, choices= MEDIA_CHOICES) 

     class Meta: 
      model = Parameters 
+0

私はmodel.pyとforms.pyを追加しました。問題は、チェックボックス付きのパラメータを除いたバックテストフォームを使用したときに保存されたすべてのパラメータが空であることです。 – faro

+0

request.method場合== 'POST': \t \t form.is_valid場合(): \t \t \t request.POSTに '保存' の場合: \t \t \t \tをOBJ = form.save(偽=コミット) \t \t \t \t obj.user =からrequest.user \t \t \t \t obj.type = "バックテスト" \t \t \t \t obj.save() \t \t \t \t messages.info(リクエスト、 '保存された!') \t \t \t \tリターンリダイレクト(obj.get_backtest_url()) – faro

+0

これは私の保存機能であります – faro

関連する問題