如何在Django中为Leadee分配一个Lead / Manager?

问题描述 投票:0回答:1

我是django的初学者,并尝试创建像Employee Management System这样的Web应用程序。我正在尝试为每位员工分配一个潜在客户。

我一直在努力寻找这种员工经理关系,以便长期完成我的要求。

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    designation = models.CharField(max_length=20, null=False, blank=False)
    empid = models.IntegerField(null=True, blank=True)
    manager = models.ForeignKey('self', null=True, blank=True, on_delete=models.CASCADE)

class Project(models.Model):
    company = models.CharField(max_length=35)
    project = models.CharField(max_length=100)
    employee_name = models.ForeignKey(User, null=True, blank=True, on_delete = models.CASCADE)

views.朋友:

@login_required(login_url="/login/")
def employee_details(request, id=None):
    context = {}
    context['user'] = get_object_or_404(User, id=id)
    return render(request, 'employee/details.html', context)

@login_required(login_url="/login/") @admin_only def employee_edit(request, id=None):
    user = get_object_or_404(User, id=id)
    if request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        if user_form.is_valid():
            user_form.save()
            return HttpResponseRedirect(reverse('employee_list'))
        else:
            return render(request, 'employee/edit.html', {"user_form": user_form})
    else:
        user_form = UserForm(instance=user)
        return render(request, 'employee/edit.html', {"user_form": user_form})

edit.html

<form method="POST">
    {% csrf_token %}
    <table class="table table-bordered table-light">
        {{user_form.as_table}}
    </table>
    <br>
    <button type="submit" class="btn btn-warning float-right">Update Profile</button>
</form>

details.html

{% extends 'base.html' %}


{% block content %}
<br>
    <table class="table table-light table-bordered table-striped">
        <tbody>
        <tr>
            <th>First Name</th>
            <td>{{user.first_name}}</td>
        </tr>
        <tr>
            <th>Last Name</th>
            <td>{{user.last_name}}</td>
        </tr>
        <tr>
            <th>Email Id</th>
            <td>{{user.email}}</td>
        </tr>
        <tr>
            <th>Employee ID</th>
            <td>{{user.profile.empID}}</td>
        </tr>
        <tr>
            <th>Designation</th>
            <td>{{user.profile.designation}}</td>
        </tr>
        <tr>
            <th>Reporting to</th>
            <td>{{user.profile.Manager}}</td>
        </tr>
        <!-- <tr>
            <th>Designation</th>
            <td>{{user.profile.designation}}</td>
        </tr> -->
    </tbody>
    </table>
    <div class="text-right">
        <a class="btn btn-warning" href="{%  url 'employee_edit' user.id %}">Edit</a>
    </div>
{% endblock content %}

在添加新员工时,我可以为员工选择经理(也是员工)。但是,在保存员工后,Manager未显示在详细信息页面中。可能是为什么我没有为员工列出经理?这里有什么我想念的吗?

python django
1个回答
0
投票

试着改变

{{user.profile.Manager}}

{{user.profile.manager.user.last_name}}

manager包含与self模型的FK链接,这是Profile,没有last_name或类似的东西。 ProfileUser有关。

© www.soinside.com 2019 - 2024. All rights reserved.