我正在使用 DRF 和 ReactJS,我正在尝试使用
django-rest-framework-social-oauth2.
在 React 中,我向后端发送请求,auth/login/patreon/然后到达 Patreon OAuth 屏幕,在那里我说我想使用 PAtreon 登录。Patreon 然后返回一个请求到后端的accounts/profile。此时,python-social-oauth用户也已创建。
在这一点上我很困惑。如何向 Patreon 发出登录请求,在后端创建用户,并将会话信息返回给 React 前端,以便我可以在来自前端的所有后续请求中包含会话信息?我不希望返回的请求在后端/accounts/profile,是吗?
更新
我现在意识到我可以设置重定向 url,LOGIN_REDIRECT_URL但是,我现在如何检索会话 ID,将其传递给前端,并将其包含在所有请求中?
我正在使用Heroku和Namecheap设置SSL。
在Heroku上,我目前拥有以下域:
Domain Name - DNS Target
www.app.domain.io - www.app.domain.io.herokudns.com
www.domain.io - www.domain.io.herokudns.com
Run Code Online (Sandbox Code Playgroud)
在NameCheap上,我有:
Type - Host - Value
CNAME Record - app - www.app.domain.io.herokudns.com
CNAME Record - www- www.domain.io.herokudns.com
URL Redirect Record - @ - https://www.domain.io
CNAME Record - www - https://www.domain.io
Run Code Online (Sandbox Code Playgroud)
什么有效:
www.domain.io works fine and does not redirect to include https
domain.io just fails to reach a site
https://www.domain.io works great!
https://domain.io fails to reach a site.
http://www.app.domain.io/ fails to reach a site.
https://www.app.domain.io/ fails to reach …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试一个引用 Vuex 商店的基本 Vue 组件。我以为我按照 Vue 的示例(https://vue-test-utils.vuejs.org/guides/using-with-vuex.html#mocking-getters)到了 T 但它似乎不起作用。
我收到标题中提到的错误。
const localVue = createLocalVue()
localVue.use(Vuex)
describe('Navbar.vue', () => {
let store: any
let getters: any
beforeEach(() => {
getters: {
isLoggedIn: () => false
}
store = new Vuex.Store({
getters
})
})
it('renders props.title when passed', () => {
const title = 'Smart Filing'
const wrapper = shallowMount(Navbar, {
propsData: { title },
i18n,
store,
localVue,
stubs: ['router-link']
})
expect(wrapper.text()).to.include(title)
})
})
Run Code Online (Sandbox Code Playgroud)
我正在使用类组件,所以也许这与它有关?
@Component({
props: {
title: String …Run Code Online (Sandbox Code Playgroud) 我有一个 React 前端和一个 Django (DRF) API。React 前端有一个类似 /content/:id 的路由,其中根据:id. 我想根据来自 Django 的请求的内容更改 index.html 元标记。
有很多关于如何使用express和React做到这一点的教程:http://www.kapwing.com/blog/how-to-add-dynamic-meta-tags-server-side-with-create-react-app/但我怎样才能用 Django 后端做到这一点呢?这些文件也存储在 AWS S3 上。
所以我在我的网站上遇到了一个问题,然后我创建了两个单独的html页面.然后我编辑了urls.py,因此2页的网址会有所不同,但如果我这样做,css就会停止工作.我的代码如下,之后我会更详细地解释.
我头部的一部分
<!-- Bootstrap core CSS -->
<link href="../../static/textchange/index.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="../../static/textchange/jumbotron.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../../static/textchange/index.js"></script>
Run Code Online (Sandbox Code Playgroud)
我如何在每个html页面上包含头部
{% include "textchange/head.html" %}
Run Code Online (Sandbox Code Playgroud)
这两个网址造成了问题
url(r'^results/(?P<uisbn>(\w)+)/(?P<uuser>(\w)+)$', views.contactpost, name="contactpost"),
url(r'^results/(?P<uisbn>(\w)+)/(?P<uuser>(\w)+)$', views.contactwish, name="contactwish"),
Run Code Online (Sandbox Code Playgroud)
所以上面是我的网址设置目前的方式,我意识到这只会转到当前的联系信息.当我更改这样的网址时:
url(r'^results/(?P<uisbn>(\w)+)/post/(?P<uuser>(\w)+)$', views.contactpost, name="contactpost"),
url(r'^results/(?P<uisbn>(\w)+)/wish/(?P<uuser>(\w)+)$', views.contactwish, name="contactwish"),
Run Code Online (Sandbox Code Playgroud)
CSS停止为两个页面工作.
最初在我有2页之前,网址看起来像这样:
url(r'^results/(?P<uisbn>(\w)+)/(?P<uuser>(\w)+)$', views.contact, name="contact"),
Run Code Online (Sandbox Code Playgroud)
Views.py
@login_required
def contactpost(request, uuser, uisbn):
ltextbook = Textbook.objects.filter(isbn = uisbn)
text = ltextbook[0]
luser = User.objects.filter(username …Run Code Online (Sandbox Code Playgroud) 所以我很愚蠢,我去删除了我的 django 应用程序中的一个表,所以打开 psql 并运行“Drop table;” 并放下了桌子。然后我删除了我的模型并运行了“python manage.py migrate”,我收到了这个错误......
django.db.utils.ProgrammingError: relation "textchange_myuser" does not exist
Run Code Online (Sandbox Code Playgroud)
除了上面的其他东西。
所以现在我无法正确删除该表,也无法取回它。我该怎么办?
谢谢。
我正在学习有关如何设置 django-autocomplete 字段的教程,但我正在努力使其正常工作。这是教程:https : //django-autocomplete-light.readthedocs.io/en/master/tutorial.html
设置已安装的应用程序
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
Run Code Online (Sandbox Code Playgroud)
项目网址.py
from textchange.views import TextbookAutoComplete
urlpatterns = [
url(r'^textbook-autocomplete$', TextbookAutoComplete.as_view(), name='textbook-autocomplete'),
Run Code Online (Sandbox Code Playgroud)
HTML
<form method="POST"> {% csrf_token %}
{% for field in form3 %}
{{ field }}
{% endfor %}
<input id="search" class="button" type="submit" value="Search Textbooks" name="Search"></input>
</form>
Run Code Online (Sandbox Code Playgroud)
表单.py
class Search(forms.ModelForm):
longschool = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)
class_name = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)
isbn = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)
class Meta:
model = Textbook
fields = ('longschool', 'class_name', …Run Code Online (Sandbox Code Playgroud) 有几十个问题与我要问的问题基本相同。但是,他们的答案似乎都不适合我。
我有一个 React 前端,axios用于向后端发送请求。例子
const request = await axios.post('${BASE_URL}/logout/')
大多数 Django Rest Framework 端点都是使用 ViewSet 制作的。但是,我有一些是自定义的,主要用于身份验证。
path('createaccount/', views.create_account),
path('me/', views.current_user),
path('logout/', views.logout),
path('login/', views.login),
path('resetpassword', views.reset_password),
Run Code Online (Sandbox Code Playgroud)
对于这个项目的开发,我在@csrf_exempt上面包含了这些视图,因为我当时不想处理它。现在我即将部署,是时候弄清楚了。
一些答案说我需要从 Django 获取一个 CSRF 令牌,它存储在 cookie 中,我需要在每个请求的标头中传递它。有些答案说我需要做的就是像配置 axios
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
axios.defaults.xsrfCookieName = "XCSRF-TOKEN";
Run Code Online (Sandbox Code Playgroud)
它会“正常工作”。我已经尝试将我的CSRF_COOKIE_NAME值调整为各种值以使其也起作用。
有些答案甚至说要保留,@csrf_exempt但这听起来是一个非常非常糟糕的主意。
我真的需要生成/获取 CSRF cookie 吗?我是否将其包含在每个请求中?还是只是axios的一个配置?
我正在尝试设置我的反应项目,所以我可以使用SCSS格式的SASS.
这是在我的webpack.config.dev.js中:
{
test: /\.scss$/,
exclude: /node_modules/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
},
},
{
loader: require.resolve('sass-loader'),
}
]
}
Run Code Online (Sandbox Code Playgroud)
我以两种不同的方式将scss文件导入我的jsx:
import './index.scss';
import css from './ModalWrapper.scss';
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我目前收到错误:
./src/index.scss
Module build failed:
body {
^
Invalid CSS after "m": expected 1 selector or at-rule, was "module.exports = __"
in /pathtoapp/web/src/index.scss (line 1, column 1)
Run Code Online (Sandbox Code Playgroud)
看来我,那个,反应是试图将SCSS解释为应该起作用的CSS.另外,反应认为身体不是有效的CSS.在那里,我认为CSS或SCSS都没有正确加载.
任何帮助,将不胜感激.这个问题有很多未解决的问题.
在我正在使用的平台上,我们希望用户能够为其创建的对象设置到期时间。他们设置的倒计时到期后,应删除该对象。
您会如何建议这样做?
编辑:我应该澄清,到期时间将随每个对象而变化。
所以我在我的一个模型上有这个django查询,我有一些额外的python代码,用于在每个查询之间进行额外的工作.我正在寻找一些帮助,将这块代码转换为单个django查询,因为我知道你应该让数据库完成大部分工作.
查询代码如下.
keywords = []
if query:
results = []
keywords = query.split()
for x in keywords:
res = Textbook.objects.filter(Q(class_name__icontains=x) |
Q(textbook_name__icontains=x) |
Q(author__icontains=x) |
Q(isbn__icontains=x))
if len(results) == 0:
results = res
else:
results = set(results) & set(res)
numresults = len(results)
Run Code Online (Sandbox Code Playgroud)
因此查询是我从用户那里获取的信息.我将此信息拆分为关键字并对每个关键字进行查询.他们正在搜索教科书,因此如果他们输入的任何单词与书籍的isbn,title,class name或作者相匹配,则会将其添加到结果中.但是,如果他们使用多个单词,我只会将其添加到结果中,如果两个单词都将该书作为查询返回.这就是结果=设置(结果)和设置(res)的结果.如果当前结果和新查询返回同一本书,请将其保留在结果中.
我知道这很糟糕所以我正在寻找一种方法来改善它.