• 1400/02/12

error id :

سلام ببخشید استاد من امروز دومین باره دارم سوال میپرسم

استاد من به یه اروری برخوردم که هرچقد به کدا نگا کردم دستاریشون کردم نتونستم درستش کنم ممنون میشم شماهم یه نگاهی بندازین

وقتی که کدایه مربود به group related رو برمیدارم مشکل حل میشه

views
def product_detail(request, *args, **kwargs):
    selected_game_id = kwargs['gameId']
    product_name = kwargs['name']

    games = game.objects.get_by_id(selected_game_id)

    if games is None or not games.active:
        raise Http404('محصول مورد نظر یافت نشد')

    related_game = game.objects.get_queryset().filter(categories__game=game).distinct()

    galleries = GameGallery.objects.filter(game_id=selected_game_id)
    link = DownloadGame.objects.filter(game_id=selected_game_id)

    grouped_related_game = my_grouper(3, related_game)

    context = {
        'games': games,
        'galleries': galleries,
        'link': link,
        'grouped_related_game': grouped_related_game,
    }

    return render(request, 'products/product_detail_game.html', context)
models
class GameManager(models.Manager):
    def get_active_products(self):
        return self.get_queryset().filter(active=True)

    def get_products_by_category(self, category_name):
        return self.get_queryset().filter(categories__name__iexact=category_name, active=True)

    def get_by_id(self, game_id):
        qs = self.get_queryset().filter(id=game_id)
        if qs.count() == 1:
            return qs.first()
        else:
            return None


class game(models.Model):
    title = models.CharField(max_length=150, verbose_name='عنوان')
    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='تصویر')
    image_1 = models.ImageField(upload_to=upload_image_path, null=True, blank=True, verbose_name='تصویر 1')
    active = models.BooleanField(default=False, verbose_name='فعال / غیرفعال')
    categories = models.ManyToManyField(GameCategory, blank=True, verbose_name="دسته بندی ها")

    objects = GameManager()
urls
urlpatterns = [

    path('game/', ProductsListGame.as_view()),
    path('game/search', SearchProductsView.as_view()),
    path('game/<gameId>/<name>', product_detail),
    path('game/<category_name>', GameListByCategory.as_view()),
    path('products_categories_partial_game', products_categories_partial_game, name='products_categories_partial_game')

]
templte
{% for group in grouped_related_game %}
                        {% for game in games %}
                            <div class="slide">
                                <div class="panel panel-default" style="margin:0;padding-left: 40px">
                                    <img src="{% static 'images/5.jpg' %}" class="img-responsive imgfluid"/>
                                    <div class="panel-body" style="margin: 0">
                                        <h4 style="margin:0;padding-top: 10px">clash of clans</h4>

                                        <button class="btn btn-info1 btn-cs button-cs">
                                            <svg style="margin-left: 10px;padding-right: 0"
                                                 xmlns="http://www.w3.org/2000/svg"
                                                 width="16" height="16" fill="currentColor"
                                                 class="bi bi-download" viewBox="0 0 16 16">
                                                <path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/>
                                                <path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/>
                                            </svg>
                                            دانلود
                                        </button>
                                        +3
                                        <span class="fa fa-star checked"></span>
                                        <span class="fa fa-star checked"></span>
                                        <span class="fa fa-star checked"></span>
                                        <span class="fa fa-star"></span>
                                        <span class="fa fa-star"></span>

                                    </div>
                                </div>
                            </div>
                        {% endfor %}
                    {% endfor %}

البته هنوز تمپلیتو کامل نکردم ولی فک نمیکنم ازین باشه 

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

سلام داخل ویو ها

get_queryset()

رو بردارین

تغییر بدید

categories__game=game.categoreies

نیست برعکسه یعنی با توجه به مدلت بازی شما شما که ری لیشن چند به چند زدین به GameCategory شما باید این طوری فیلتر کنید

game__categories=game.categoreies

اول اسم مدل بعد اسم فیلد

 

اما در صورتی که مدل های دیگه ای دارید لطفا عکس اون ها رو هم بزارین چون از این مدل و این کد ها همین برداشت میشه


  • 1400/02/12
  • ساعت 22:37
{% for group in grouped_related_game %} 
	{% for game in group %}

حلقه هم این طوری باشه

البته اگه حلقه دیگری هست من حرفی ندارم


  • 1400/02/12
  • ساعت 22:46

داش انجام دادم درست نشد 

views
def product_detail(request, *args, **kwargs):
    selected_game_id = kwargs['gameId']
    product_name = kwargs['name']

    games = game.objects.get_by_id(selected_game_id)

    if games is None or not games.active:
        raise Http404('محصول مورد نظر یافت نشد')

    related_game = game.objects.filter(game__categories=game.categories).distinct()

    galleries = GameGallery.objects.filter(game_id=selected_game_id)
    link = DownloadGame.objects.filter(game_id=selected_game_id)

    grouped_related_game = my_grouper(3, related_game)

    context = {
        'games': games,
        'galleries': galleries,
        'link': link,
        'grouped_related_game': grouped_related_game,
    }

    return render(request, 'products/product_detail_game.html', context)

  • 1400/02/13
  • ساعت 08:51

سلام شما بیزحمت مدل کتگوری  و گیم رو بفرست

چون ارور عوض شده عرض می کنم


  • 1400/02/13
  • ساعت 10:47
class GameCategory(models.Model):
    title = models.CharField(max_length=150, verbose_name='عنوان')
    name = models.CharField(max_length=150, verbose_name='عنوان در URL',null=True,blank=True)

    class Meta:
        verbose_name = 'تگ'
        verbose_name_plural = 'تگ بازی ها'

    def __str__(self):
        return self.title

بفرما داش بالاهم گیمو فرستادم قبلا


  • 1400/02/13
  • ساعت 11:02
games = game.objects.get_by_id(selected_game_id)

درسته من غلط تایپی دارم شما درستش کن دیگه شما بازی رو ریختی توی متغییر

games

بعد اینجا 

related_game = game.objects.filter(game__categories=game.categories).distinct()

از game داریم دسته بندی می گیریم

که باید بشه games 

related_game = game.objects.filter(game__categories=games.categories).distinct() 

شما این رو بزنید بببینم چه اروری میگیره  بعدش اونو بفرستید


  • 1400/02/13
  • ساعت 11:09

داش اینی که گفتیو زدم 

related_game = game.objects.filter(game__categories=games.categories).distinct()

بعد این ارورو داد


  • 1400/02/13
  • ساعت 16:32

دوستان کسی نمیتونه حل کنه؟


  • 1400/02/13
  • ساعت 16:53

داش رفتم یو ار ال اصلیو عوض کردم الان جفت یو ار ال ها اینجوری شدن و بازم عینه همون ارورو میده

urls asli
urlpatterns = [
    path('admin/', admin.site.urls),
    path('game/', include('site_products.urls')),
    path('', include('site_products_app.urls')),
    path('', home_page),
]
urls game
urlpatterns = [

    path('', ProductsListGame.as_view()),
    path('search', SearchProductsView.as_view()),
    path('<gameId>/<name>', product_detail),
    path('<category_name>', GameListByCategory.as_view()),
    path('products_categories_partial_game', products_categories_partial_game, name='products_categories_partial_game')

]

من این رو ار ال گیمو الان یکم تغییرش دادن چون تو یو ار ال اصلی نگا کنی پچ اپ رو عینه اون خالی بود جایه اسمش سره همین تو یو ار ال گیم هرچی اسلش گیم پشتش بودو برداشتم داش بازم میگم وقتی داخل پروداکت گیم related_game و grouped_related_game رو برمیدارم مشکل حل میشه ولی اینا میان ارور میده


  • 1400/02/13
  • ساعت 17:03

این تیکه کد رو بردار

 

game__

از

related_game = game.objects.filter(game__categories=game.categories).distinct()

  • 1400/02/13
  • ساعت 17:06

داش برداشتم این ارورو داد


  • 1400/02/13
  • ساعت 17:18

اول از همه 

 path('<gameId>/<name>', product_detail),

بشه

path('<int:gameId>/<slug:name>', product_detail),

داخل مدل slug تعریف کن نمایش متن توی یو ار ال وظیفه اونه

class game(models.Model):
    title = models.CharField(max_length=150, verbose_name='عنوان')
    .
    .
    .
	slug = models.SlugField(unique=True, max_length=100, verbose_name="آدرس دسته بندی")

این فیلد مخصوصا یکی از کاربرداش متن توی url رو شامل میشه

 

دیگه خدمتت عرض کنم

فعلا همین کارا رو انجام بده ببینم اررور چی میده


  • 1400/02/13
  • ساعت 17:26

شما تمپپلت list view رو هم برا من بی زحمت بفرست


  • 1400/02/13
  • ساعت 17:30

داش نمیدونم چرا اصلا نمیزاره من اینو migrate کنمش


  • 1400/02/13
  • ساعت 17:34

یه راهش اینه

یه مقدار default
برای slug ست کن فرق نداره چی

 

اگه نشد راه بعدیش اینه

برو تو پوشه migrations

همه فایلا به جز
init__.py__
رو بپاک میک کایگریشن و مایگریت کن

احتمال زیاد بع همون گیر داده مایگریشن هاش قاطی شدن


  • 1400/02/13
  • ساعت 17:40

داش دیفالت تعیین کردم درست نشد و اون کاریم که گفتیو کردم یه ارور دیگه داد اگه اشتباه پاک کردم بگو با کنترل زد دوباره برگردونم


  • 1400/02/13
  • ساعت 17:53

makemigrations

بزنی این ارور رومیده؟


  • 1400/02/13
  • ساعت 17:54

اره


  • 1400/02/13
  • ساعت 18:07

فایلا رو که برگردون 
slug
رو هم بردارش

 

ببین داش روشت اشتباه که نمیاره
این عبارت رو گوگل کن سه تاا فیلم از یوتیوبه یه نگاه بنداز طرف ببین چطوری ریلیتد میاره آدم حال میاد
show related products with django

اینم لینک


  • 1400/02/13
  • ساعت 19:13

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

این کلیپ سوم

views
    related_game = games.objects.values('categories', 'id')

کلیپ دوم

related_game = games.categories.name.filter(parent=None).exclude(id=selected_game_id.id)

کلیپ اول

views
related_game = game.objects.filter(categories=games.categories).exclude(id=selected_game_id.id)[:4]

 



  • 1400/02/13
  • ساعت 19:16

عکس ارورایه کلیپ اول و دوم و سوم


  • 1400/02/13
  • ساعت 19:18

بعدم داش اون روشی که اولش زده بودم گفتی مشکل داره اون روش خوده استاد بود که تو کلیپم کار کرد منم عینشو نوشتم نمیدونم چرا ارور داده

داش دیگه واقعا خسته شدم از ضب واسه یه ارور دارم زجه میزنم 

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


  • 1400/02/13
  • ساعت 19:21

عیب نداره قصه نخور یک هفته اخیر روی یه ارور خودم مونده بودم

فعلا بیخیالش شومغزت رو استراحت بده فر دا بشین سرچش کن


  • 1400/02/13
  • ساعت 19:22

تا جایی که فهمیدم مشکل از  اون name که شما میفرستی فقط با ای دی خالی یه تست کن


  • 1400/02/13
  • ساعت 19:33

حله داش 

استاد اگه دیدی ممنون میشم یه نگاهی به ارور بندازی هنوز مشکل حل نشده


logo-samandehi