// when an image is selected open URL with it
jQuery('#bookmarklet .images a').click(function(e){
selected_image = jQuery(this).children('img').attr('src');
// hide bookmarklet
jQuery('#bookmarklet').hide();
// open new window to submit the image
window.open(site_url +'images/create/?url='
+ encodeURIComponent(selected_image)
+ '&title='
+ encodeURIComponent(jQuery('title').text()),
'_blank');
});
Oldingi kod quyidagicha ishlaydi:
1. Har bir rasmning havola elementiga click() hodisasini biriktirasiz.
2. Foydalanuvchi rasmni bosganda, siz selected_
image nomlangan yangi o'zgaruvchini o'rnatasiz.
tanlangan rasmning URL manzilini o'z ichiga olgan rasm.
3. Siz xatcho'pni yashirasiz va URL manzili bilan yangi brauzer oynasini ochasiz saytingizda yangi rasmni xatcho'p qo'yish. Siz mazmunini o'tkazasiz veb-sayt elementi va tanlangan rasm URL manzili GET parametrlari sifatida.
Brauzeringiz bilan yangi URL oching va ko'rsatish uchun xatcho'pni yana bosing tasvirni tanlash oynasi. Agar siz rasmga bossangiz, rasmga yo'naltirilasiz sahifani yarating, veb-sayt sarlavhasini va tanlangan rasmning URL manzilini GET sifatida o'tkazing parametrlar:
Tabriklaymiz! Bu sizning birinchi JavaScript xatcho'pingiz bo'lib, u to'liq integratsiyalangan Django loyihangizga kiriting.
Tasvirlar uchun batafsil ko'rinish yaratish
Endi saqlangan tasvirni ko'rsatish uchun oddiy tafsilotlar ko'rinishini yarataylik sizning saytingiz. Tasvirlar ilovasining views.py faylini oching va quyidagilarni qo'shing unga kod:
from django.shortcuts import get_object_or_404
from .models import Image
def image_detail(request, id, slug):
image = get_object_or_404(Image, id=id, slug=slug)
return render(request,
'images/image/detail.html',
{'section': 'images',
'image': image})
Bu tasvirni ko'rsatish uchun oddiy ko'rinishdir. Tasvirlarning urls.py faylini tahrirlang ilovasini va quyidagi URL namunasini qo'shing:
path('detail///',
views.image_detail, name='detail'),
Tasvirlar ilovasining models.py faylini tahrirlang va get_absolute_url() ni qo'shing. Tasvir modeliga quyidagi usuldan foydalaning:
from django.urls import reverse
class Image(models.Model):
# ...
def get_absolute_url(self):
return reverse('images:detail', args=[self.id, self.slug])
Ob'ektlar uchun kanonik URL-manzillarni taqdim etishning umumiy namunasi ekanligini unutmang modeldagi get_absolute_url() usulini aniqlash uchun. Nihoyat, /images/image/ shablon katalogida shablon yarating.
tasvirlar ilovasi va uni detail.html deb nomlang. Unga quyidagi kodni qo'shing:
{% extends "base.html" %}
{% block title %}{{ image.title }}{% endblock %}
{% block content %}
Do'stlaringiz bilan baham: |