ユーザーアカウントに設定を追加しようとしています。各プリファレンスはtrue/false値であり、このままである必要があります。
各アカウントには複数の設定がある可能性があるため、テンプレートでそれらをループする方法を知り、それらの設定をアプリ全体で簡単に利用できるようにします。
元。ユーザーの名前と好きな色をすべて表示したい。
models.py
class UserColors(models.Model):
white = models.BooleanField(_("White"))
black = models.BooleanField(_("Black"))
class Account(models.Model):
user = models.OneToOneField(User, unique=True, verbose_name='user', related_name='account')
colors = models.ForeignKey('UserColors', null=True)
views.py
class UserView(DetailView):
context_object_name = 'account'
template_name = 'detail.html'
def get_object(self, queryset=None):
return self.request.user
template.html
user: {% account.user.username %} <br>
colors:
# the following would be ideal instead of doing multiple ifs in search for true/false values
{% for color in account.colors %}
color.name
{% endif %}
出力
user: userName
colors: white, black