上のテキストフィールドを追加し、JSONフィールドについての質問を持っていると私は、サイトの作成レシピ関数を記述しようとしていますDjangoは、私はDjangoのレシピのウェブサイトを書いていますクリック
を形成し、二つのことやってみたかった:
をメールの添付ファイルを追加する場合と同様に、マウスクリックでテキストフィールドを追加します。私はJSONFieldを使いたいです(picklefieldが良い場合を除いて)
私はユーザーが1つのテキストフィールドでレシピを編集できるようにしたいと思います。 私は、すべてのステップを1つのテキストフィールドにパックして、そのフィールドを編集してからステップに戻すことができることを願っていました。それ以外の場合は、ユーザーが各ステップを個別に編集する必要があります。ここ
は、Djangoのプロジェクトから私のモデルです:
class Cookbook(models.Model):
def __unicode__(self):
return self.name
name = models.CharField(max_length=50)
pub_date = models.DateTimeField('date published')
user = models.ForeignKey(User, related_name='cookbooks')
recipes = models.ManyToManyField('Recipe', related_name = 'cookbooks')
class Recipe(models.Model):
def __unicode__(self):
return self.name
original_cookbook = models.ForeignKey(Cookbook)
name = models.CharField(max_length=200)
author = models.CharField(max_length= 100)
picture = models.ImageField(upload_to = 'Downloads', blank=True)
pub_date = models.DateTimeField('date published', auto_now_add=True, blank=True)
ingredients = JSONField()
steps = JSONField()
prep_time = models.IntegerField()
ここで私は新しいレシピを作成した図です。今私は自分の見解でJSONFieldを使う方法がわかりません。
私はこれを見つけましたが、「最後に、フォームとのやり取りの仕組みがまだ分かりません。そのため、領域は少しばかり暗いです」私はフォームを使用しているのを見て、これは解決されていますか?ここ
def createrecipe(request):
if not request.user.is_authenticated():
return HttpResponseRedirect('/index/')
else:
if request.method == 'POST':
form = RecipeForm(request.POST)
if form.is_valid():
recipe = form.save(commit=False)
recipe.original_cookbook = request.user.cookbooks.all()[0]
recipe.pub_date = datetime.datetime.now()
recipe.save()
user = request.user
cookbooks = user.cookbooks
cookbook = cookbooks.all()[0]
cookbook.recipes.add(recipe)
return HttpResponseRedirect('/account')
else:
form = RecipeForm()
return render_to_response('cookbook/createrecipe.html',
{'form':form},
context_instance=RequestContext(request))
はcreaterecpe.htmlブロックのコンテンツです:
{% block content %}
<form action="." method="POST">
<table>
{% csrf_token %}
{{ form.as_table }}
</table>
<p><input type="submit" value="Submit"></p>
</form>
{% endblock %}
私はJSONFieldモデルとJSONフィールドにテキストを入力/表示するビューの間のギャップを埋めるに苦労しています。私はテンプレートにjsonfieldを表示する方法も混乱しています。
はあなたがここに formsetを使用することができますsnackerfish
あなたがこれまでに持っているモデルを表示/説明すると便利です。 –
ありがとう@benauthorモデル – snackerfish