2010-11-21 2 views
2

私は次のモデルクラスとフォームを使用してブログを作成しています。私はユーザーが自分自身をURL(slugifiedフィールド)を追加しないようにしています。モデルを保存する前にURLを、私は正しい場合は、ビューで行う必要があります。 PS:私はスラッグフィールドが利用できないと聞いたところでアプリケーションエンジンを使用しています。どのようにslugifiedフィールドを追加する

class Post(db.Model): 
      title=db.StringProperty(required=True) 
      url=db.StringProperty(required=True) 
      content_html=db.TextProperty(required=True) 
      dateTime=db.DateTimeProperty(auto_now_add=True,required=True) 
      tags=db.StringListProperty() 


class PostForm(djangoforms.ModelForm): 
class Meta: 
    model=Post 
    exclude=['url'] 
+0

HTTPを試してみてください。また

#views.py from django.template.defaultfilters import slugify def post_create(request, ...): ... if request.method == 'POST': form = PostForm(request.POST) if form.is_valid(): post = form.save(commit=False) title = form.cleaned_data['title'] slugified_title = str(slugify(title)) post.url = [modify the slugified_title however you want...] post.save() ... 

を、あなたのフォームのようなものが見える方法を保存上書きすることができます.net/snippet/brettsky/SlugProperty%20for%20App%20Engine%20based%20on%20Django%27s%20SlugField – sunn0

答えて

2

ビューでこれを行うか、フォームの保存メソッドをオーバーライドできます。あなたのビューでそれを行う場合は、次のようなものになります。//www.smipple:

#forms.py 
class PostForm(django.forms.ModelForm): 
    class Meta: 
     model=Post 
     exclude=['url'] 
    def save(self, commit=True, force_insert=False, force_update=False): 
     post = super(PostForm, self).save(commit=False) 
     slugified_title = str(slugify(post.title)) 
     post.url = [modify the slugfield_title however you want...] 
     post.save() 
関連する問題