I originally put that url pattern into the root conf, but it wasn't working 
there either. Embarrassingly, I'm not sure how to import my app's conf or 
define a new pattern that would point to it.

This is what the root urls.py looks like:
from __future__ import unicode_literals

from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.views.i18n import set_language

from mezzanine.core.views import direct_to_template
from mezzanine.conf import settings


admin.autodiscover()

urlpatterns = i18n_patterns(
    # Change the admin prefix here to use an alternate URL for the
    # admin interface, which would be marginally more secure.
    url("^admin/", include(admin.site.urls)),
)

if settings.USE_MODELTRANSLATION:
    urlpatterns += [
        url('^i18n/$', set_language, name='set_language'),
    ]

urlpatterns += [

    url("^$", direct_to_template, {"template": "index.html"}, name="home"),

    # REST API URLs
    url("^api/", include("mezzanine_api.urls")),

    url("^", include("mezzanine.urls")),
]

handler404 = "mezzanine.core.views.page_not_found"
handler500 = "mezzanine.core.views.server_error"




On Thursday, July 6, 2017 at 9:13:26 PM UTC-7, Eduardo Rivas wrote:
>
> I see you created a urlconf for your app, but have you added it to your 
> root urls.py? If so, is if above or below Mezzanine's catch-all pattern? 
>
> On Jul 6, 2017 9:12 PM, <[email protected] <javascript:>> wrote:
>
>> Hi, thanks for such a great resource! I have googled around for a few 
>> days and have made some headway this problem, but have hit a wall. I'm 
>> trying to use the Displayable model to create an easy way to add news 
>> stories and have them displayed as a simple list view, which is very 
>> similar behavior to the blog app. If there is a better solution using a 
>> ForeignKey, please point me in the right direction!
>>
>> I read an older post 
>> <https://groups.google.com/forum/#!msg/mezzanine-users/HmNGXkf4m4k/FDJ1Rd-h1KsJ>
>>  about 
>> creating a new Displayable, and have used Mezzanine's source code to 
>> successfully extend the Displayable model and have it appear correctly in 
>> the admin. The issue now is that I can't seem to get the views (views.py) 
>> and url patterns to work. When clicked "view on site" from the admin, the 
>> url seems to grab the model's slug ("news"), but ends up linking to 
>> http://localhost:8000/en/admin/<myapp>/news/%28u/, and doesn't work 
>> linking directly to the actual item's slug. Exploring the source code for 
>> Mezzanine's blog's urls and views, I'm unsure how to correctly refactor. I 
>> understand that I will need to create my own templates to act as 
>> blog_post_list.html 
>> and blog_post_detail.html, but don't know how to create the super basic 
>> views to point to them.
>>
>> models.py:
>> class News(Displayable, RichText):
>>
>>     pagetitle = models.CharField('Title', max_length=255, blank=True)
>>     url = models.CharField('Link', max_length=255, blank=True)
>>     summary = models.CharField('Summary', max_length=255, blank=True)
>>     date = models.DateField(_("Date"), default=datetime.date.today)
>>     categories = models.ManyToManyField("NewsCategory",
>>                                         verbose_name=_("Categories 
>> (Magazine, Award, etc.)"),
>>                                         blank=True, 
>> related_name="newsitems")
>>     related_news = models.ManyToManyField("self",
>>                                  verbose_name=_("Related News"), 
>> blank=True)
>>
>>     class Meta:
>>         verbose_name = _("News Item")
>>         verbose_name_plural = _("News Items")
>>
>>     def get_absolute_url(self):
>>         url_name = 'news'
>>         kwargs = {
>>             'slug': self.slug,
>>         }
>>         return (url_name, (), kwargs)
>>
>>
>> class NewsCategory(Slugged):
>>     """
>>     A category for grouping news items into a series.
>>     """
>>
>>     class Meta:
>>         verbose_name = _("News Category")
>>         verbose_name_plural = _("News Categories")
>>         ordering = ("title",)
>>
>>     @models.permalink
>>     def get_absolute_url(self):
>>         return ("news_item_list_category", (), {"category": self.slug})
>>
>> admin.py
>> news_fieldsets = deepcopy(DisplayableAdmin.fieldsets)
>> news_fieldsets[0][1]["fields"].insert(1, "categories")
>> news_fieldsets[0][1]["fields"].extend(["pagetitle", "url", "summary", 
>> "date"])
>> news_fieldsets = list(news_fieldsets)
>> news_fieldsets.insert(1, (_("Other News"), {
>>     "classes": ("collapse-closed",),
>>     "fields": ("related_news",)}))
>> news_list_filter = deepcopy(DisplayableAdmin.list_filter) + 
>> ("categories",)
>>
>>
>> class NewsAdmin(DisplayableAdmin):
>>     """
>>     Admin class for news posts.
>>     """
>>
>>     fieldsets = news_fieldsets
>>     # list_display = news_list_display
>>     list_filter = news_list_filter
>>     filter_horizontal = ("categories", "related_news",)
>>
>>     def save_form(self, request, form, change):
>>         """
>>         Super class ordering is important here - user must get saved 
>> first.
>>         """
>>         DisplayableAdmin.save_form(self, request, form, change)
>>         return DisplayableAdmin.save_form(self, request, form, change)
>>
>> class NewsCategoryAdmin(BaseTranslationModelAdmin):
>>     """
>>     Admin class for blog categories. Hides itself from the admin menu
>>     unless explicitly specified.
>>     """
>>
>>     fieldsets = ((None, {"fields": ("title",)}),)
>>
>>     def has_module_permission(self, request):
>>         """
>>         Hide from the admin menu unless explicitly set in 
>> ``ADMIN_MENU_ORDER``.
>>         """
>>         for (name, items) in settings.ADMIN_MENU_ORDER:
>>             if "blog.BlogCategory" in items:
>>                 return True
>>         return False
>>
>>
>> admin.site.register(News, NewsAdmin)
>> admin.site.register(NewsCategory, NewsCategoryAdmin)
>>
>> urls.py:
>> from .models import News
>> import .views
>>
>> _slashes = (
>>     "/" if settings.BLOG_SLUG else "",
>>     "/" if settings.APPEND_SLASH else "",
>> )
>>
>> urlpatterns = patterns(
>>     'news.views',
>>     url("^%s(?P<slug>.*)%s$" % _slashes, "news", name="news"),
>> )
>>
>> views.py:
>> from django.shortcuts import render
>>
>> def news(request, slug):
>>     return HttpResponse('Test')
>>
>> The view is currently not even returning "Test." Any direction at all 
>> would be appreciated!
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Mezzanine Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to