Несколько текстовых вводов в форме Django через Google App Engine - PullRequest
3 голосов
/ 06 мая 2011

Цель: создать вопрос, в котором пользователь создает вопрос для опроса в стиле «mad-libs» (т. Е. «Вы бы пошалили с _ (текст) __ , если она не встречалась _ (текст) _ ? ").

Код: этот файл создает форму django, соответствующую сущности appengine.

from django import newforms as forms
import models
from google.appengine.ext.db import djangoforms


class PollForm(djangoforms.ModelForm):
    class Meta:
        model = models.Poll

Это выдержка из файла models.py

from google.appengine.ext import db
from django import newforms as forms

class Poll(db.Model):
    question = db.StringProperty()
    created_on = db.DateTimeProperty(auto_now_add = 1)
    created_by = db.UserProperty()

def __str__(self):
    return '%s' %self.question

def get_absolute_url(self):
    return '/poll/%s/' % self.key()

вот HTML-код для этого раздела

<form action="." method="post">

{{pollform.as_p}}

{% for form in choiceforms %}
    {{form.as_p}}
{% endfor %}

<input type="submit" name="createpoll" value="createpoll" />
</form>

Есть ли достаточно простой способ создать такой вопрос с помощью некоторого предварительно закодированного текста и некоторого входного текста? Могу ли я записать это в HTML?

Любое направление очень ценится!

1 Ответ

0 голосов
/ 08 мая 2011

Я до сих пор не совсем понял ваш вопрос. Если вы разместите свой полный исходный код и пример результата, который вы пытаетесь получить, тогда вы получите лучший ответ.

Вот пример построения формы, чтобы кто-то мог ответить на вопрос. Я жестко закодировал вопрос, но вы могли бы легко получить его динамически.

class Answer(models.Model):
    answer1 = models.CharField(max_length=100)
    answer2 = models.CharField(max_length=100)

class AnswerForm(forms.ModelForm):
    class Meta:
        model = Answer

def test(request):
    if request.method == 'GET':
        form = AnswerForm()
        question_template = 'Would you fool around with %s if she wasn\'t dating %s?'
        html = question_template % (form['answer1'], form['answer2'])
        params = {'form': form,
                  'html': html}
        return render_to_response('test.html',
                                  params,
                                  context_instance=RequestContext(request))

Шаблон:

<form method="post" action="">
    {% csrf_token %}
    {% for hidden in form.hidden_fields %}
        {{ hidden }}
    {% endfor %}

    {{ html|safe }}

    <input type="submit" value="Save"/>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...