2016-12-08 7 views
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日間立ち往生しています。

ありがとうございました!あなたのビューで

答えて

0

あなたはこのような何かしなければならないフォームの作成:あなたの答えのための

task_form = TaskForm() 
task_form.fields["employee"].queryset = User.objects.filter(group__name="supervisor") 
+0

感謝を。 2行目の代わりに、私は次のように書いています: 'task_form.employee = User.objects.filter(groups__name = 'supervisor')' Pythonコンソールで書くと、グループが表示されます。私は何かがコマンド 'task_form.employee'の左の部分に間違っていると思います –

関連する問題