Python 用户如何在django中将元素添加到他们的配置文件中?

Python 用户如何在django中将元素添加到他们的配置文件中?,python,django,Python,Django,我正在写一个django视图,它应该允许用户将动画添加到他们的个人资料中,但我不知道如何真正做到这一点。这个想法是,用户点击一个按钮,上面写着“添加动画”,然后将其添加到个人资料中的列表中 我有一个名为“favorite”的函数,但到目前为止它什么都没有做。这个想法是,一旦用户发出post请求,它就会将其添加到用户的个人资料中 def homepage(request): if request.method == 'POST': animes_url = 'https

我正在写一个django视图,它应该允许用户将动画添加到他们的个人资料中,但我不知道如何真正做到这一点。这个想法是,用户点击一个按钮,上面写着“添加动画”,然后将其添加到个人资料中的列表中

我有一个名为“favorite”的函数,但到目前为止它什么都没有做。这个想法是,一旦用户发出post请求,它就会将其添加到用户的个人资料中

def homepage(request):
   
   if request.method == 'POST':
       animes_url = 'https://api.jikan.moe/v3/search/anime?q={}&limit=6&page=1'
       
       search_params = {
           'animes' : 'title',
           'q' : request.POST['search']
           
           }

       r = requests.get(animes_url, params=search_params)
       results = r.json()
       
       results = results['results']
       animes = []
       
       if len(results):
           for result in results:
               animes_data = {
                   'Id' : result["mal_id"],
                   'Title' : result["title"],
                   'Episodes' : result["episodes"],
                   'Image' : result["image_url"]
               }
               animes.append(animes_data)
       else:
           message = print("No results found")

       for item in animes:
           print(item)
    
   context = {
   'animes' : animes
   }
       
   return render(request,'home.html', context)

def favorite(request, pk):
   if request.method == 'POST':
       favorite = Anime.objects.get(pk=pk)
       user = request.user
       user.profile.add(favorite)
       messages.add_message(request, messages.INFO, 'Anime Favorited.')
       return redirect('home')
这些是模型:

class Anime(models.Model):

   title = models.CharField('Title', max_length=150)
   episodes = models.IntegerField()
   image = models.ImageField()
   

   def __str__(self):
       return self.title

class Profile(models.Model):
   user = models.OneToOneField(User, on_delete=models.CASCADE)
   favorites = models.ManyToManyField(Anime, related_name='favorited_by', null=True, blank=True)
这是要添加它的html:

<form action="/profile">
     <section>
       <div class="col-md-4 col-sm-6 col-lg-3">
         <div class="card">
           
           <div class="card-body text-center">
             <p class="card-title"> <b>{{anime.Title}}</b></p>
             <hr>
             <p class="card-text">Episodes: <b>{{anime.Episodes}}</b></p>
             
             <img src = {{anime.Image}} />
             
           </div>
     </section>
     <input
       type="submit"
       value="Add to profile"
       class="btn btn-danger btn-sm"
       type="button"
   />
       </form>

{{anime.title}


剧集:{{anime.scents}


您可以创建一个新模型
收藏列表
具有
用户
动画
的外键。例如:用户A像动画B一样,表
收藏列表
在数据库中添加了一行包括用户、动画、日期。然后你可以在收藏夹列表中使用
user\u id
进行筛选,获得他们添加的所有动画。@Nguyễ谢谢,这是个好主意,我试试看。