简体   繁体   English

无法使用指向用户 model 的外键插入 django model

[英]Unable to insert into django model with foreign key pointing to user model

I am pretty new to django and I am working on a job portal website.我对 django 很陌生,我正在开发一个工作门户网站。 My users are recruiters and students.我的用户是招聘人员和学生。 When a recruiter posts a job, i am able to retrieve all the values from the form but unable to insert in my Internship Model.当招聘人员发布工作时,我可以从表格中检索所有值,但无法插入我的实习 Model。 Can you guys help please?请问各位能帮忙吗?

Here is my code:这是我的代码:

models.py模型.py

class Recruiter(models.Model):

     STATUS_CHOICES = (
     ('Pending', 'Pending'),
     ('Accepted', 'Accepted'),
)
     user = models.ForeignKey(User,on_delete=models.CASCADE)
     position = models.CharField(max_length=50)
     status = models.CharField(max_length=20, choices=STATUS_CHOICES)
     user_type = models.CharField(max_length=10, choices=USER_TYPE_CHOICES)

     def __str__(self):
          return self.user.username     

 

class Internship(models.Model):
 recruiter = models.ForeignKey(Recruiter, on_delete=models.SET_NULL, null=True)
 internship_title = models.CharField(max_length=100)
 internship_desc = RichTextField()
 start_date = models.DateField()
 end_date = models.DateField()
 posted_date = models.DateField()

 def __str__(self):
      return self.internship_title

views.py视图.py

def post_internship(request):
    if not request.user.is_authenticated:
        messages.warning(request,"Please login first")
        return redirect('login')

    if request.method == 'POST':
        start_date = request.POST['start_date']
        end_date = request.POST['end_date']
        internship_title = request.POST['internship_title']
        internship_desc = request.POST['internship_desc']
    
        user = request.user
        recruiter = Recruiter.objects.get(user=user)
        try:
            Internship.objects.create(recruiter=recruiter, internship_title=internship_title, 
     internship_desc=internship_desc, start_date=start_date, end_date=end_date,  
     posted_date=date.today())
        except:
            print('error')

       return render(request, 'post_internship.html', context)

I dont think i understand the point of richtext field in your intership model.我认为我不理解您的实习 model 中富文本字段的意义。

internship_desc = RichTextField()

i would probably use a我可能会使用

 models.TextField

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM