Рассмотрим две модели в моих models.py
:
Роли:
class Role(models.Model):
role = models.CharField(max_length=255)
nickname = models.CharField(max_length=255)
is_hero = models.BooleanField(default=False)
def __str__(self):
return self.role
и
Игроки:
class Player(models.Model):
name = models.CharField(max_length=255)
role = models.ForeignKey(Role, on_delete=models.CASCADE)
nickname = models.CharField(max_length=255, default="Use the default nickname from the role you just chose but also be able to change it from within this model.")
is_hero = models.BooleanField(default="Use the default is_hero from the role you just chose but also be able to change it from within this model.")
def __str__(self):
return self.name
Также учтите, чтоЯ уже сделал роль под названием "Dumbo"
с псевдонимом "Dunm"
и is_hero, равным False
.
Теперь я продолжаю и пытаюсь использовать роль в моем новом игроке после задания имени игрока, выбираюмоя роль, но как мне использовать значения моей выбранной роли в моем новом проигрывателе по умолчанию для псевдонима и is_hero, и в то же время разрешить их переопределение, если так?
Спасибо,
Редактировать:
Я переопределил все шаблоны Django.Поэтому я не создаю новые формы и не отображаю их в своих пользовательских представлениях.Я действительно плохо с терминологией, простите меня.Я надеюсь, что это имеет смысл.
{% load fieldcss %}
<div class="card">
<div class="card-header">
{% if fieldset.name %}<h4 class="card-title">{{ fieldset.name }}</h2>{% endif %}
{% if fieldset.description %}
<div class="description">{{ fieldset.description|safe }}</div>
{% endif %}
</div>
<div class="card-body">
{% for line in fieldset %}
<div class="row">
{% for field in line %}
{% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
{% if name == "CheckboxInput" %}
{{ field.field }}{{ field.label_tag }}
{% else %}
{{ field|addlabel:field.field.label|safe }}
{% if field.is_readonly %}
<div class="readonly">{{ field.contents }}</div>
{% else %}
<div class="col-sm-10">
{% if line.fields|length_is:'1' %}{{ line.errors }}{% endif %}
<div class="form-group">
{{ field|addclass:field.field.auto_id|safe }}
{% if field.field.help_text %}
<span class="form-text">{{ field.field.help_text|safe }}</span>
{% endif %}
</div>
</div>
{% endif %}
{% endif %}
{% endfor %}
</div>
{% endfor %}
</div>
</div>
</fieldset>