2016-04-22 2 views
0

Начал обучение Django python неделю или два назад, поэтому, пожалуйста, имейте это в виду.Распечатайте значения модели в форме и отредактируйте их Django

То, что я хочу, чтобы данные, которые будут отображаться в формах, и он будет редактироваться в тех же формах, например:

enter image description here

Где он говорит: Имя Фамилия электронная почта

Я бы хотел, чтобы он извлекал данные из базы данных и записывал их внутри форм.

Имя Kevin Фамилия Кларк электронной [email protected]

и так далее для каждой записи. Как написано ниже, где говорится, что вы создали их. Итак, одна форма редактирования со значениями, выписанными для каждого набора записей.

Надеюсь, что мне удалось задать четкий вопрос, и я не верю, насколько я знаю, что это дубликат, если мне так жаль.

ОС: Fedora IDE: Eclipse, Django 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> 

Обратите внимание, я не использую все переменные в четкости редактирования, как я иду вперед и назад, пытаясь понять это так, что это может быть немного неаккуратно.

Благодарю вас всех за ваше время.

+0

Также, если бы вы могли указать мне в правильном направлении, я был бы очень благодарен. – ChronicUser

ответ

0

Если я правильно понимаю ваш вопрос, вы просто хотите, чтобы начальные значения отображались в форме? В этом случае вы ищете https://docs.djangoproject.com/en/1.9/ref/forms/api/#dynamic-initial-values

Когда вы создаете экземпляр вашего Form, сделать что-то вроде 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

Эти швы должны работать до степени instance = New.objects.get (id = 1) data = {"firstName": "Clark", "lastName": "Kevin"} form = NewForm (data, instance = instance) # request.POST – ChronicUser