@login_required
@require_http_methods(["GET", "POST"])
def create(request):
if request.method == "POST":
if form.is_valid():
product = form.save(request.user)
for i in product.content.split():
if i.startswith('#'):
tag, _ = Hashtag.objects.get_or_create(tag=i)
product.tags.add(tag)
return redirect("products:detail", product.pk)
else:
form = ProductForm
context = {'form' : form}
return render(request, "products/create.html", context)
product.content를 split()으로 공백을 기준으로 i로 나눠주고
나눠준 i 가 #으로 시작한다면
product.tags에 넣어준다.
@login_required
@require_http_methods(["GET", "POST"])
def update(request, pk):
product = get_object_or_404(Product, pk=pk)
if product.user == request.user:
if request.method == "POST":
if "image" in request.FILES and product.image:
default_storage.delete(product.image.path)
form = ProductForm(request.POST, request.FILES, instance=product)
if form.is_valid():
product = form.save(request.user)
product.tags.clear()
for i in product.content.split():
if i.startswith('#'):
tag, _ = Hashtag.objects.get_or_create(tag=i)
product.tags.add(tag)
return redirect("products:detail", product.pk)
else:
form = ProductForm(instance=product)
context = {
'form' : form,
'product' : product
}
else:
return redirect('home')
return render(request, "products/update.html", context)
'TIL > Python' 카테고리의 다른 글
DRF Serializer 패스워드 해싱 (0) | 2024.04.26 |
---|---|
Django HTTP 301 에러 (0) | 2024.04.22 |
[django project] 4. 게시글 검색, 정렬 (0) | 2024.04.17 |
[django project] 3. Pagination (0) | 2024.04.16 |
[django project] 2. User Custom, Validator, Form (0) | 2024.04.15 |