2016-04-22 18 views
0

1〜2週間前にDjango pythonの学習を開始したので、この点に注意してください。それが言うところモデルの値をフォームに出力して編集するDjango

enter image description here

: ファーストネーム 姓 メールを私が欲しいもの

は、フォームに表示されるデータのためのものであり、それは例えば、同じ形でで編集されます

データベースからデータを取り出し、フォームの内部に書き出すことをお勧めします。各エントリの

ファーストネームケビン 姓クラーク メール[email protected]

のように。 これは、あなたが作成したと言われているように、腹を立てて書かれているようです。 エントリのセットごとに書き出された値を持つ1つの編集フォーム。

私は明確な質問をすることができたと思いますが、私はそれが重複していると私の知る限りではないと思っています。

OS:Fedoraの IDE: ジャンゴEclipseのPythonの

views.py

def edit(request): 
    instance = New.objects.all() 
    data = { "firstName" : "Clark", 
        "lastName": "Kevin"} 
    form = NewForm(request.POST) #instance=instance) 
    print form.instance.firstName 

    if(form.is_valid()): 
     instance = form.save(commit=False) 
     instance.save() 

    context = { 
       "object_list" : instance, 
       "formset" : form, 
       "instance" : instance 
    } 

    return render(request, "secondTry/new.html", context) 

models.py

class New(models.Model): 
firstName = models.CharField(max_length=50, null=True) 
lastName = models.CharField(max_length=50, null=True) 
email = models.EmailField() 
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) 
updated = models.DateTimeField(auto_now_add=False, auto_now=True) 

forms.py

class NewForm(ModelForm): 
class Meta: 
    model = New 
    fields = [ 
       "firstName", 
       "lastName", 
       "email" 
       ] 

HTML

<!DOCTYPE html> 
<html> 
    <head> 

    </head> 

    <body> 
     <h1>Create a New One</h1> 
      <form method='post' action=""> {% csrf_token %} 
       <table> 
        {{ formset }} 
       </table> 
       <input type='submit' value="Submit"> 
      </form> 

      {{ instance }} {% csrf_token %} 

      <h2>You Created These</h2> 
      {% for obj in object_list %} 
        {{ obj.firstName }} 
        {{ obj.lastName }} 
        {{ obj.email }} <br/><br/> 
       {% endfor %} 






    </body> 
</html> 

注私はそれは少し厄介かもしれないので、これを把握しようと行ったり来たりしていて、私はDEF編集内のすべての変数を使用していません。

ありがとうございました。

+0

また、私が正しい方向に向けることができれば、とても感謝しています。 – ChronicUser

答えて

0

あなたの質問を正しく理解している場合は、初期値をフォームに表示したいだけですか?その場合、あなたはあなたのFormのインスタンスを作成している場合は、https://docs.djangoproject.com/en/1.9/ref/forms/api/#dynamic-initial-values

を探して、あなたの編集ビューがすでに何らかの形でDBからインスタンスをロードしていると仮定するとname_form = Form(request.POST, initial=db_instance) ような何かをしています。

+0

それでもフォーム内では印刷されません:instance = New.objects.get(id = 1)form = NewForm(request.POST、instance = instance) – ChronicUser

+0

しかし、ドキュメントを読んで、このケースに適用しようとしています。 – ChronicUser

+0

エクステントインスタンス= New.objects.get(id = 1) data = {"firstName": "Clark"、 "lastName": "Kevin"} フォーム= NewForm(データ、インスタンス= instance)#request.POST – ChronicUser

関連する問題