

{"id":80457,"date":"2020-08-08T20:39:09","date_gmt":"2020-08-08T15:09:09","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=80457"},"modified":"2021-08-25T13:48:15","modified_gmt":"2021-08-25T08:18:15","slug":"discussion-forum-python-django","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/","title":{"rendered":"Create a Discussion Forum in Python Django"},"content":{"rendered":"<p><strong>Work on a real-time Python Django Project &#8211; Discussion Forum<\/strong><\/p>\n<h3>What is a Discussion Forum?<\/h3>\n<p>Discussion Forum is nothing but a place (in our case a website) that enables us to post our views over a certain topic publically and also allows us to see other\u2019s opinions on the same. Let\u2019s see how we can actually make this interesting Django project.<\/p>\n<p>To make it more interesting, we\u2019ll allow the user to post anonymously.<\/p>\n<h2>About the Discussion Forum Project<\/h2>\n<p>We\u2019ll develop this interesting python project using a very popular python framework: Django which provides many inbuilt functionalities and thus make our work much simpler and less time-consuming.<\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/django-tutorials-home\/\">Django<\/a><\/strong> is a Python-based free and open-source web framework and we can use it to develop any kind of project be it an E-commerce website or a simple Discussion Forum.<\/p>\n<h3>Project Prerequisites<\/h3>\n<p>To implement this project we need to know the following:<\/p>\n<ol>\n<li>Basic concepts of Python<\/li>\n<li>HTML<\/li>\n<li>CSS<\/li>\n<li>Bootstrap<\/li>\n<li>Django framework<\/li>\n<\/ol>\n<p>If you don\u2019t know much about Django, don\u2019t worry we will start from scratch<\/p>\n<p>To install the library, you can use pip installer on the command line:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">pip install django\r\n<\/pre>\n<h3>Download Discussion Forum Project Code<\/h3>\n<p>Before proceeding ahead, please download the source code of Discussion Forum Project: <strong><a href=\"https:\/\/data-flair.training\/blogs\/download-discussion-forum-source-code\/\">Discussion Forum in Python Django<\/a><\/strong><\/p>\n<h3>Steps to Build the Project \u2013 Discussion forum<\/h3>\n<h4>1. Creating the project and app:<\/h4>\n<p>Now we will create a new project, DataFlair_discsnForum and an app inside it named \u2019Discussion_forum\u2019<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">django-admin startproject DataFlair_discsnForum\r\ncd DataFlair_discusnForum\r\ndjango-admin startapp Discussion_Forum\r\n<\/pre>\n<h4>2. Creating the Database (models.py):<\/h4>\n<p>Let&#8217;s create the databases in models.py which is inside the app folder. The class will be a subclass of model class defined in models module, and we can define as many fields as we want in here and by default all fields are mandatory, to change this default behavior of Django, add to the specific field \u2018null=True\u2019 as seen in the below code.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.db import models \r\n    \r\n#parent model\r\nclass forum(models.Model):\r\n    name=models.CharField(max_length=200,default=\"anonymous\" )\r\n    email=models.CharField(max_length=200,null=True)\r\n    topic= models.CharField(max_length=300)\r\n    description = models.CharField(max_length=1000,blank=True)\r\n    link = models.CharField(max_length=100 ,null =True)\r\n    date_created=models.DateTimeField(auto_now_add=True,null=True)\r\n    \r\n    def __str__(self):\r\n        return str(self.topic)\r\n \r\n#child model\r\nclass Discussion(models.Model):\r\n    forum = models.ForeignKey(forum,blank=True,on_delete=models.CASCADE)\r\n    discuss = models.CharField(max_length=1000)\r\n \r\n    def __str__(self):\r\n        return str(self.forum)\r\n\r\n<\/pre>\n<p>Our models class forum will store:<\/p>\n<ol>\n<li>Customer name<\/li>\n<li>Customer email<\/li>\n<li>The topic of the forum<\/li>\n<li>Reference links<\/li>\n<li>Description<\/li>\n<li>Creation date<\/li>\n<\/ol>\n<p>Discussion class is a child class of forum that stores views from different users. It has just two fields-<\/p>\n<ol>\n<li>The forum which is a foreign key (Provide a many-to-one relation by adding a column to the local model to hold the remote value). It helps in maintaining a record of which opinion belongs to which forum.<\/li>\n<li>Discuss &#8211; It actually stores the opinion<\/li>\n<\/ol>\n<p>We are using simple model fields for that purpose. The __str__() method will return the string representation of the object. These are simple Django concepts.<\/p>\n<p>We are using Django inbuilt database SQLite so we need not add anything to our settings.py file. If you are using any other database don\u2019t forget to change your database settings in settings.py file.<\/p>\n<h4>3. Creating and updating models: forms.py<\/h4>\n<p>This is required for creating, updating various models that we have created in models.py (for CRUD functionality). We will be using inbuilt Django forms so we don\u2019t have to code much.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.forms import ModelForm\r\nfrom .models import *\r\n \r\nclass CreateInForum(ModelForm):\r\n    class Meta:\r\n        model= forum\r\n        fields = \"__all__\"\r\n \r\nclass CreateInDiscussion(ModelForm):\r\n    class Meta:\r\n        model= Discussion\r\n        fields = \"__all__\"\r\n\r\n<\/pre>\n<p>It just contains two forms one for creating a new forum and one for adding views to the existing forum, which is clear from the models which we are using in Meta class (a metaclass is used to define an extra option for a model or form so that other classes within the web app know the capabilities of the model)<\/p>\n<h4>4. To directly create\/update models from django admin site: admin.py<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.contrib import admin\r\nfrom .models import *\r\n \r\n# Register your models here.\r\nadmin.site.register(forum)\r\nadmin.site.register(Discussion)\r\n<\/pre>\n<p>It will register all our models to the admin site so that when we search http:\/\/127.0.0.1:8000\/admin\/ we can easily create\/update. But make sure you create a superuser and apply all migrations by :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">py manage.py makemigrations\r\npy manage.py migrate\r\npy manage.py createsuperuser\r\n<\/pre>\n<p>It will ask your username, email, password.<\/p>\n<h4>5. Configuring urls.py :<\/h4>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.contrib import admin\r\nfrom django.urls import path\r\nfrom Discussion_forum.views import *\r\n \r\nurlpatterns = [\r\n    path('admin\/', admin.site.urls),\r\n    path('',home,name='home'),\r\n    path('addInForum\/',addInForum,name='addInForum'),\r\n    path('addInDiscussion\/',addInDiscussion,name='addInDiscussion'),\r\n]\r\n<\/pre>\n<p>We just need to add the last four lines here and the import statements.<\/p>\n<h4>6. Let\u2019s finally set our \u2018views.py\u2019 :<\/h4>\n<p>Code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from django.shortcuts import render,redirect\r\nfrom .models import * \r\nfrom .forms import * \r\n# Create your views here.\r\n \r\ndef home(request):\r\n    forums=forum.objects.all()\r\n    count=forums.count()\r\n    discussions=[]\r\n    for i in forums:\r\n        discussions.append(i.discussion_set.all())\r\n \r\n    context={'forums':forums,\r\n              'count':count,\r\n              'discussions':discussions}\r\n    return render(request,'home.html',context)\r\n \r\ndef addInForum(request):\r\n    form = CreateInForum()\r\n    if request.method == 'POST':\r\n        form = CreateInForum(request.POST)\r\n        if form.is_valid():\r\n            form.save()\r\n            return redirect('\/')\r\n    context ={'form':form}\r\n    return render(request,'addInForum.html',context)\r\n \r\ndef addInDiscussion(request):\r\n    form = CreateInDiscussion()\r\n    if request.method == 'POST':\r\n        form = CreateInDiscussion(request.POST)\r\n        if form.is_valid():\r\n            form.save()\r\n            return redirect('\/')\r\n    context ={'form':form}\r\n    return render(request,'addInDiscussion.html',context)\r\n\r\n<\/pre>\n<p>Let\u2019s discuss each function one by one:<\/p>\n<p><strong>1. home:<\/strong> This is the home page that takes all forums and discussion objects and passes them to the templates through a dictionary named context. This page links to both the other pages and shows all the required information to the user with the feature of adding more information in any forum.<\/p>\n<p><strong>2. addInForum:<\/strong> This function is used to create a new forum through an instance of CreateInForum() object defined in forms.py and also, it takes the filled data through request.POST and checks if the data is valid to save it in our database and after successfully storing it redirects to the home page otherwise it again asks user to fill the correct information.<\/p>\n<p><strong>3. addInDiscussion:<\/strong> This is very similar to the previous function, the only change is it is used to add opinions to existing forums.<\/p>\n<h4>7. Now let&#8217;s create the templates:<\/h4>\n<p>There are three templates home, addInDiscussion, addInForums and here are the files<\/p>\n<p><strong>Home.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{% load static %}\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n&lt;head&gt;\r\n    &lt;meta charset=\"UTF-8\"&gt;\r\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\r\n    &lt;title&gt;DataFlair discussion forum&lt;\/title&gt;\r\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\"0&gt;\r\n    &lt;style&gt;\r\n        .box{\r\n            border: 4px solid black;\r\n            margin: 0 auto;\r\n        }\r\n    &lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n        &lt;h2 class=\"jumbotron\"&gt;\r\n            Currently active forums: {{count}}\r\n            &lt;form method=\"POST\" action=\"{% url 'addInForum' %}\"&gt;\r\n                {% csrf_token %}\r\n            &lt;button class=\"btn btn-success\" style=\"width:fit-content; padding: 4px; margin:10px;\"&gt;Add more&lt;\/button&gt;\r\n            &lt;\/form&gt;\r\n        &lt;\/h2&gt;\r\n            &lt;div class=\"card-columns\" style=\"padding: 10px; margin: 20px;\"&gt;&lt;\/div&gt;\r\n            \r\n            \r\n            {%for forum in forums %}\r\n            \r\n                &lt;div class=\"card box container\"&gt;\r\n                    &lt;br&gt;\r\n                    &lt;h5 class=\"card-title\"&gt;\r\n                        &lt;a href='{{forum.link}}'&gt;&lt;h3&gt;{{forum.topic}}&lt;\/h3&gt;&lt;\/a&gt; \r\n                        &lt;div class=\"card-body container\"&gt;\r\n                                &lt;p&gt;{{forum.description}}&lt;\/p&gt;\r\n                            &lt;\/h5&gt;\r\n                            &lt;hr&gt;\r\n                            &lt;p&gt; By: {{forum.name}}&lt;\/p&gt;\r\n                            email- {{forum.email}}\r\n                            &lt;hr&gt;     \r\n                            &lt;h4&gt;Views from other users&lt;\/h4&gt;\r\n                            {%for discuss in discussions%}\r\n                            {%for objs in discuss%}  \r\n                            {% if objs.forum == forum %}\r\n                               {{objs.discuss}}\r\n                               &lt;br&gt;\r\n                            {% endif %}\r\n                            {%endfor%}\r\n                            {%endfor%}\r\n                            &lt;form method=\"POST\" action=\"{% url 'addInDiscussion' %}\"&gt;\r\n                                {% csrf_token %}\r\n                            &lt;button class=\"btn btn-success\" style=\"width:fit-content; padding: 4px; margin:10px;\"&gt;Add more&lt;\/button&gt;\r\n                            &lt;\/form&gt;\r\n                        &lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n            &lt;br&gt;\r\n            \r\n            {%endfor%}\r\n          \r\n    &lt;script src=\"https:\/\/code.jquery.com\/jquery-3.5.1.slim.min.js\" integrity=\"sha384-DfXdz2htPH0lsSSs5nCTpuj\/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/popper.js@1.16.0\/dist\/umd\/popper.min.js\" integrity=\"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/js\/bootstrap.min.js\" integrity=\"sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh\/kR0JKI\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p><strong>addInForum.html <\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;head&gt;\r\n    &lt;style&gt;\r\n        form{\r\n            border:4px solid black;\r\n            margin: 0 auto;\r\n            padding: 40px;\r\n            width: fit-content;\r\n        }\r\n    &lt;\/style&gt;\r\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\"0&gt;\r\n    \r\n&lt;\/head&gt;\r\n&lt;form action=\"{% url 'addInForum' %}\" method=\"POST\"&gt;\r\n    {% csrf_token %}\r\n    {{form.as_p}}\r\n    &lt;input type=\"submit\" class=\"btn btn-success\" value=\"submit\"&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<p><strong>The output looks like:<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80473\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum.png\" alt=\"add in forum\" width=\"1366\" height=\"728\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum.png 1366w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum-300x160.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum-1024x546.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum-768x409.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-forum-520x277.png 520w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<p><strong>addInDiscussion.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;head&gt;\r\n    &lt;style&gt;\r\n        form{\r\n            border:4px solid black;\r\n            margin: 0 auto;\r\n            padding: 40px;\r\n            width: fit-content;\r\n        }\r\n    &lt;\/style&gt;\r\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\"0&gt;\r\n    \r\n&lt;\/head&gt;\r\n&lt;form action=\"{% url 'addInDiscussion' %}\" method=\"POST\"&gt;\r\n    {% csrf_token %}\r\n    {{form.as_p}}\r\n    &lt;input type=\"submit\" class=\"btn btn-success\" value=\"submit\"&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<p><strong>The output looks like:<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80474\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion.png\" alt=\"add in discussion\" width=\"1366\" height=\"728\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion.png 1366w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion-300x160.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion-1024x546.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion-768x409.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/add-in-discussion-520x277.png 520w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<h3>Discussion Forum &#8211; Final Output<\/h3>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80475\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum.png\" alt=\"discussion forum\" width=\"1366\" height=\"728\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum.png 1366w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum-300x160.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum-1024x546.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum-768x409.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/discussion-forum-520x277.png 520w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>We have successfully developed the discussion forum project in Python Django. It was a beginner level project and you can add more features like upvoting or downvoting an opinion, social login, etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Work on a real-time Python Django Project &#8211; Discussion Forum What is a Discussion Forum? Discussion Forum is nothing but a place (in our case a website) that enables us to post our views&#46;&#46;&#46;<\/p>\n","protected":false},"author":10,"featured_media":80476,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[22887,22886,19201,21082],"class_list":["post-80457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-discussion-forum-in-django","tag-discussion-forum-in-python","tag-django-project","tag-python-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create a Discussion Forum in Python Django - DataFlair<\/title>\n<meta name=\"description\" content=\"Discussion Forum in Python Django - This is an interesting project for django beginners. In this project we developed a simple discussion forum where users can add new questions and answer any of the older questions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Discussion Forum in Python Django - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Discussion Forum in Python Django - This is an interesting project for django beginners. In this project we developed a simple discussion forum where users can add new questions and answer any of the older questions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-08T15:09:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-25T08:18:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a Discussion Forum in Python Django - DataFlair","description":"Discussion Forum in Python Django - This is an interesting project for django beginners. In this project we developed a simple discussion forum where users can add new questions and answer any of the older questions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/","og_locale":"en_US","og_type":"article","og_title":"Create a Discussion Forum in Python Django - DataFlair","og_description":"Discussion Forum in Python Django - This is an interesting project for django beginners. In this project we developed a simple discussion forum where users can add new questions and answer any of the older questions.","og_url":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-08-08T15:09:09+00:00","article_modified_time":"2021-08-25T08:18:15+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33"},"headline":"Create a Discussion Forum in Python Django","datePublished":"2020-08-08T15:09:09+00:00","dateModified":"2021-08-25T08:18:15+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/"},"wordCount":859,"commentCount":6,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg","keywords":["discussion forum in Django","discussion forum in python","Django Project","Python project"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/","url":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/","name":"Create a Discussion Forum in Python Django - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg","datePublished":"2020-08-08T15:09:09+00:00","dateModified":"2021-08-25T08:18:15+00:00","description":"Discussion Forum in Python Django - This is an interesting project for django beginners. In this project we developed a simple discussion forum where users can add new questions and answer any of the older questions.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/python-project-create-discussion-forum-django.jpg","width":1200,"height":628,"caption":"python project create discussion forum django"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/discussion-forum-python-django\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/python\/"},{"@type":"ListItem","position":3,"name":"Create a Discussion Forum in Python Django"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.","url":"https:\/\/data-flair.training\/blogs\/author\/dfadteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=80457"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80457\/revisions"}],"predecessor-version":[{"id":80477,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80457\/revisions\/80477"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/80476"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=80457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=80457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=80457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}