python - 用户如何在 django 中将元素添加到他们的个人资料中?
问题描述
我正在编写一个 django 视图,该视图应该允许用户将动画添加到他们的个人资料中,但我不确定如何实际执行此操作。这个想法是用户点击一个按钮,上面写着“添加动漫”,并将其添加到他们个人资料中的列表中。
我有这个函数叫做'favorite',但到目前为止它什么也没做。这个想法是,一旦他们提出发布请求,它就会将其添加到用户的个人资料中。
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>
解决方案
推荐阅读
- mysql - Sql:加入2个没有公共字段的表
- javascript - 以角度单击按钮后未触发 ngOnDestroy
- sails.js - 尝试在模型上实施关系后,Sails Lift 停止工作
- mysql - 如何从 Python 3 将值插入 Mysql 表中的 DATE 列
- javascript - xml中的自闭标签空间问题 - Cheerio
- nginx - Nginx 与 openssl 构建错误 CentOS 7 -“基本名称:缺少操作数”
- c++ - 为什么在向量包围的向量上使用 .pushback 时出现重叠错误
- docker - 在代码中检索当前环境(Kotlin、Docker)
- sapui5 - 如何在 XML 中绑定嵌套的 JSON 数据
- android-studio - 在 Android Studio 中通过 Retrofit 获得多个 json 响应