0
本当にここであなたの助けが必要です。私は自分の問題に対するすべての関連する回答を読んだと思うが、それがどのように機能するかを理解することはできない。グループに所属するユーザーのリストをhtml形式に変換することはできません
私はdjangoのhtml形式の中から、特定のグループに属するユーザーを選択したいと思います。
私は私のモデル以下である "タスク"、作成:
class Task(models.Model):
Taskdetails = models.CharField(max_length=500, null=True)
asset = models.ForeignKey('Asset', null=True)
failure = models.ForeignKey('Failure', null=True)
Created_task_date = models.DateTimeField(default=timezone.now, null=True)
employee = models.ForeignKey("auth.User", null = True)
def __str__(self):
return str(self.id)
Djangoのフォームは次のとおりです。
class TaskForm (ModelForm):
class Meta:
model = Task
fields = ('Taskdetails', 'asset', 'failure', 'employee',)
ビューは次のとおりです。
def task_new(request):
if request.method == "POST":
task_form = TaskForm(request.POST)
subtask_form=SubtaskForm(request.POST)
task_form.employee = User.objects.filter(groups__name='supervisor')
if task_form.is_valid() and subtask_form.is_valid():
task = task_form.save()
subtask = subtask_form.save(commit=False)
task.Created_task_date = timezone.now()
task_form.employee = User.objects.filter(groups__name='supervisor')
task.save()
subtask.task=task
subtask.Created_subtask_date = timezone.now()
subtask.save()
return redirect('great_job')
else:
task_form = TaskForm()
subtask_form = SubtaskForm()
return render(request, 'TaskTrace/task_new.html', {'task_form': task_form, 'subtask_form':subtask_form})
と相対HTMLをis
{% block content %}
<div>
<h1>New Task</h1>
<form method="POST" class="task-form">
{% csrf_token %}
Equipment with failure: {{ task_form.asset }}<br><br>
Failure Description: {{ task_form.failure }} <br><br>
Task Details: {{ task_form.Taskdetails }} <br><br>
Employee: {{ task_form.employee }}
<button type="submit" class="save btn btn-default">Open</button>
</form>
</div>
{%endblock%}
私はdjango-admin 3ユーザーで作成しました。そのうち2つは「監督者」グループに属しています。この特定のグループに属するこれらの2人のユーザーだけがテンプレートに表示されたいと思います。反対に、すべてのユーザーがフォームにスローされます。
誰でも手伝ってもらえますか?私はこの特定の時点で3日間立ち往生しています。
ありがとうございました!あなたのビューで
感謝を。 2行目の代わりに、私は次のように書いています: 'task_form.employee = User.objects.filter(groups__name = 'supervisor')' Pythonコンソールで書くと、グループが表示されます。私は何かがコマンド 'task_form.employee'の左の部分に間違っていると思います –