• 1400/02/28

Star ratings :

سلام خسته نباشید

استاد من سایت بازی دارم و میخوام سیستم ستاره دهی از صفحه ادمین براش پیاده سازی کنم

خودم هرچقد گشتم دیدم بیشترشون و یا متوجه نمیشم یا اصلا جوری دارن طراحی میکنن که خوده کاربر بتونه ستاره بده به بازیا من نمیخوام اینجوری باشه میخوام خودم از صفحه ی ادمین وقتی دارم این بازی رو ثبتش میکنم این ستاره هارم ازونجا ثبت کنم 

من الان کدارم خدمتتون میدم ممنون میشم از همین کدها منو راهنماییم کنید

models
class game(models.Model):
    title = models.CharField(max_length=150, verbose_name='عنوان (500x300)')
    developer_game = models.CharField(max_length=150, null=True, verbose_name='سازنده', blank=True)
    size_game = models.CharField(max_length=150, null=True, verbose_name='حجم', blank=True)
    of_on = models.CharField(max_length=150, null=True, verbose_name='آفلاین/آنلاین', blank=True)
    category = models.CharField(max_length=150, null=True, verbose_name='دسته بندی', blank=True)
    text_h1 = models.CharField(max_length=150, null=True, verbose_name='متن بزرگ 1', blank=True)
    text_h2 = models.CharField(max_length=150, null=True, verbose_name='متن بزرگ 2', blank=True)
    description_1 = models.TextField(verbose_name='توضیحات 1', null=True, blank=True)
    description_2 = models.TextField(verbose_name='توضیحات 2', null=True, blank=True)
    image = models.ImageField(upload_to=upload_image_path, null=True, blank=True, verbose_name='تصویر (500x300)')
    image_1 = models.ImageField(upload_to=upload_image_path, null=True, blank=True, verbose_name='تصویر  1 (840x480)')
    active = models.BooleanField(default=False, verbose_name='فعال / غیرفعال')
    categories = models.ForeignKey(GameCategory, blank=True, verbose_name="دسته بندی ها", on_delete=models.CASCADE)
    image_new = models.ImageField(upload_to=upload_image_path, null=True, blank=True, verbose_name='تصویر پست جدید (300x110)')
    tag = models.TextField(null='خالی', verbose_name='تگ', blank=True)
views
def home_page(request):
    slider = Slider.objects.all()
    games = game.objects.all()
    apps = app.objects.all()

    latest_game = game.objects.order_by('-id').all()
    categories_game = GameCategory.objects.filter(ShowInHome=True)
    categories_app = AppCategory.objects.filter(ShowInHome=True)
    context = {
        'name': 'home_page',
        'slider': slider,
        'games': games,
        'apps': apps,
        'latest_game': latest_game,
        'categories_game': categories_game,
        'categories_app': categories_app,
    }

    return render(request, 'home_page.html', context)
template
    <section style="margin-bottom: 10%;padding-bottom: 30px; background: #f1f1f1">


        <h3 style="font-family: 'Shabnam',serif;" class="text-center w3-padding-top-24">جدیدترین بازی ها</h3>

        <div style="width: 25%;height: auto;margin-right: 37%;padding-top: 0%;margin-bottom: 2%"
             class="border-bottom w3-border-aqua w3-bottombar">
        </div>


        <div class="carousel"
             data-flickity='{ "wrapAround": true }'>


            {% for game in latest_game %}

                {% include 'products/products_item.html' %}

            {% endfor %}


        </div>
        <div style="width: 25%;height: auto;margin-right: 37%;margin-top: 2%"
             class="border-bottom w3-border-aqua w3-bottombar">
        </div>
    </section>
item carousel
<div class="slide">
                            <div class="panel panel-default pad-item" style="margin:0">
                                <a href="{{ game.get_absolute_url }}">
                                    <img src="{{ game.image.url }}" class="img-responsive imgfluid"/>

                                </a>
                                <div class="panel-body" style="margin: 0">
                                    <a style="text-decoration: none;" href="{{ game.get_absolute_url }}">
                                        <h3 style="font-family: 'Shabnam',serif;" class="title-game">{{ game.title }}</h3>
                                    </a>


                                    <span class="star">
                            <a class="text-star">3+</a>
                            <span class="star-font fa fa-star checked"></span>
                            <span class="star-font fa fa-star checked"></span>
                            <span class="star-font fa fa-star checked"></span>
                            <span class="star-font fa fa-star"></span>
                            <span class="star-font fa fa-star"></span>
                        </span>

                                </div>
                            </div>
                        </div>

vectorgold.ir 

اینم ادرس سایت تو همون صفحه ی اول carousel هارو میبیند که ایتم هاش ستاره دارن ولی برا همشون 3تا ست شده

  • 1400/02/29
  • ساعت 10:56

یه روز گذشت کسی پیدا نیست جواب منم بده


  • 1400/02/29
  • ساعت 12:38

برای امکانات و ویژگی های بیشتر مثل همین امتیاز دهی و خیلی چیزای دیگه خیلی راحت تر هستش که ادمین اختصاصی بزنید

یک ادمین اختصاصی برای این بخش بزنید و از django-star-rating که یک پکیج مناسب برای این کار هستش استفاده کنید برای امتیاز دهی

https://pypi.org/project/django-star-ratings/

این پکیج هستش میتونید داکیومنتش رو مطالعه کنید


  • 1400/02/30
  • ساعت 12:39

سلام دوست من

اگر قصد ندارین که کاربران امتیازدهی رو انجام بدن، یک field جدید به مدل اصلی game خودتون اضافه کنین که یک عدد بین 1 تا 5 رو دریافت میکنه و بعد در صفحه اون رو نمایش بدین

اما اگر قصد دارین که کاربران سایت هم بتونن بهش رای بدن، پکیجی که اقای مهدوی معرفی کردن رو استفاده کنین


logo-samandehi