我正在创建一个Django应用程序,允许users to register作为"mentor“或"mentee”。每个用户都有一些存储在MentorProfile/MenteeProfile用户中的信息,这些信息在所有帐户中都是通用的,而导师/被辅导者有第二个表(一对一)的,它具有专门知识/兴趣领域。
目标是创建一种机制,在运行匹配算法(例如稳定关系)之后,通过该机制将导师分配给被辅导者。我有工作的注册/编辑功能,但是我被困在如何开始实现匹配。
是否有一种方法将按钮引入Django管理面板,当单击该按钮时:
值得注意的是,我们有一个可以工作的python脚本,它可以从csv中提取必要的信息,从而完成导师/指导者关系的分配。我们只是不确定如何在我们的应用程序中实现这个逻辑。
编辑:只是对我的模型的一般看法。此外,用户类具有默认的用户属性(用户名、名、姓氏、电子邮件等)。
这是我的blog/models.py
class User(AbstractUser):
is_mentor = models.BooleanField('Mentor', default=False)
is_mentee = models.BooleanField('Mentee', default=False)
class MenteeProfile(models.Model):
CAREER_CHOICES = [
('Doctor', 'Doctor'),
('Teacher', 'Teacher'),
('Engineer', 'Engineer'),
('Scientist', 'Scientist'),
('Biologist', 'Biologist'),
('Business', 'Business')
]
user=models.OneToOneField(User, on_delete=models.CASCADE)
career_interest1 = models.CharField(max_length=30, default='Doctor', choices=CAREER_CHOICES)
career_interest2 = models.CharField(max_length=30, default='Doctor', choices=CAREER_CHOICES)
career_interest3 = models.CharField(max_length=30, default='Doctor', choices=CAREER_CHOICES)
class MentorProfile(models.Model):
user=models.OneToOneField(User, on_delete=models.CASCADE)
AREA_OF_EXPERTISE = [
('Doctor', 'Doctor'),
('Teacher', 'Teacher'),
('Engineer', 'Engineer'),
('Scientist', 'Scientist'),
('Biologist', 'Biologist'),
('Business', 'Business')
('--', '--') ]
career_expertise1 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
career_expertise2 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
career_expertise3 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
career_expertise4 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
career_expertise5 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
career_expertise6 = models.CharField(max_length=30, default='--', choices=AREA_OF_EXPERTISE)
def __str__(self):
return self.user.username谢谢!
所有的帮助都将受到感谢!
发布于 2019-11-12 07:50:35
来自姜戈博士
在admin.py文件中:
class MentorProfileAdmin(admin.ModelAdmin):
#define your list display or fieldsets
....
....
#now need to define urls for custom button in admin template file
def get_urls(self):
"""
generate urls for methods. and attach with admin url
:param self:
"""
urls = super().get_urls()
my_urls = [
url(r'^match-mentee/$', self.match_mentee),
]
return my_urls + urls
def match_mentee(self, request):
"""
here you put the matching logic
"""
....
....
self.message_user(request, "mentor has been assigned to mentee")
return HttpResponseRedirect("../")对于在管理模板中添加自定义按钮,据我所知,在django 1.8中需要自定义它是有限制的。因此,只有有限的一部分管理模板可以定制。我想请您参考官方文件来探索定制。
另外,将url放在按钮的href中,以使按钮在模板中工作。
https://stackoverflow.com/questions/58813212
复制相似问题