【发布时间】:2020-07-28 16:10:11
【问题描述】:
现在我正在使用我正在制作的博客系统,而无需使用 django 管理站点。因此,我必须创建一个博客文章模型和视图函数,将博客数据手动存储到数据库中。因为我已经使用了自定义用户模型的用户登录和一个外键,用于在 BlogData 数据库中存储登录用户的名字来自 @ 987654322@型号。
我的问题是我无法通过视图直接连接到用户的名字。有什么办法吗?
这是我的代码,
Models.py(博客数据)
from django.db import models
from login.models import User
# Create your models here.
class BlogData(models.Model):
blogger_name = models.ForeignKey(User,on_delete=models.CASCADE,related_name='blogger_name')
publish_date = models.DateTimeField(auto_now=True)
blog_title = models.TextField()
blog_subtitle = models.TextField()
blog_body = models.TextField()
blog_baseimg = models.ImageField(upload_to='pics',null=True)
def __str__(self):
return self.blog_title
Views.py
from django.shortcuts import render
from .models import languages,BlogData
def submit_post(request):
if request.method == 'POST':
blg_tt = request.POST['blog_title']
blg_stt = request.POST['blog_subtitle']
blg_cnt = request.POST['blog_content']
blg_img = request.POST['blog_img']
#Problem is what to write in blogger_name
data = BlogData.objects.create(blogger_name = <?????>,blog_title=blg_tt,blog_subtitle=blg_stt,blog_body=blg_cnt,blog_baseimg=blg_img)
data.save()
return render(request,"index.html")
Models.py(自定义用户模型)
from django.db import models
from django.contrib.auth.models import AbstractUser,BaseUserManager
# Create your models here.
class UserManager(BaseUserManager):
use_in_migrations = True
def _create_user(self,email,password,**kwargs):
email = self.normalize_email(email=email)
user = self.model(email=email)
user.set_password(password)
user.save(using = self._db)
return user
def create_user(self,email,password = None,**kwargs):
kwargs.setdefault('is_staff',False)
kwargs.setdefault('is_superuser',False)
return self._create_user(email,password,**kwargs)
class User(AbstractUser):
username = None
email = models.EmailField(unique = True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
【问题讨论】:
标签: python django django-models django-views