私はモデルフォームを持っています:
class UserPreferencesForm(ModelForm):
"""
Form for storing user preferences.
"""
class Meta:
model = UserPreferences
exclude = ('user')
モデル:
class UserPreferences(models.Model):
"""
Model for user project preferences.
"""
user = models.OneToOneField(User)
...
およびビューで:
...
form = UserPreferencesForm(request.POST or None)
if form.is_valid():
# save the form
prefs = form.save(commit=False)
prefs.user = request.user
prefs.update()
messages.add_message(
request, messages.INFO, 'Your preferences have been updated.'
)
...
各ユーザーが 1 セットの設定のみを持つようにしたいので、ビュー コードをリファクタリングして、update()
オブジェクトの存在を確認して保存するのではなく、モデル メソッドの行に沿って何かを使用したいと考えています。これにより、より多くのクエリが発生します。
モデルを「作成または更新」する最も効率的な方法は何ですか?
どんな助けでも大歓迎です。