我在我的视图中有带有文本和 html 内容的 EmailMultiAlternatives 对象:
email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, 'text/html')
Run Code Online (Sandbox Code Playgroud)
当我测试消息正文属性的内容包含文本版本时,我不知道如何断言 html 内容:
self.assertHTMLEqual(mail.outbox[0].body, message) # This test passes
self.assertHTMLEqual(mail.outbox[0].<???>, messageHTML) # But here I don't know what to do
Run Code Online (Sandbox Code Playgroud) 这是我的测试:
jest.mock('gsap')
import TweenMax from '../../__mocks__/gsap'
import Component from '@/components/Callback/Form.vue'
import { shallow, createLocalVue } from '@vue/test-utils'
const localVue = createLocalVue()
test('phone opacity changing from 1 to 0 in totalTime', () => {
const wrapper = shallow(Component, {
localVue,
mocks: {
localStorage
},
watch: {
step
},
methods: {
enterNamePlaceholder,
toNextBtn
}
})
const phone = wrapper.find('.callback__phone')
expect(TweenMax.to.mock.calls[0][0]).toBe(phone.element)
})
Run Code Online (Sandbox Code Playgroud)
正在测试的代码:
TweenMax.to(document.querySelector('.callback__phone'), this.totalTime, {opacity: 0, onComplete: this.enterNamePlaceholder})
Run Code Online (Sandbox Code Playgroud)
和开玩笑的错误信息:
Expected value to be:
<a class="callback__phone link" href="tel:88619442620">+7 (861) 944 26 20</a>
Received: …Run Code Online (Sandbox Code Playgroud) 在显示异步加载的Vue模板数据的情况下,我很有趣。在我的特定情况下,我需要显示产品对象的标题属性:
<td class="deals__cell deals__cell_title">{{ getProduct(deal.metal).title }}</td>
Run Code Online (Sandbox Code Playgroud)
但是该产品当前未加载,因此标题根本不会呈现。我找到了一个可行的解决方案:如果未加载产品,则在解决诺言之后,请调用getProduct函数:
getProduct (id) {
if (!this.rolledMetal.all.length) {
this.getRolledMetal()
.then(() => {
this.getProduct(id)
})
return {
title: ''
}
} else {
return this.getRolledMetalById(id)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,也许您知道更优雅的解决方案,因为我认为这有点复杂:)
我正在尝试使用添加新包poetry add,但它总是出现此错误:
HTTPSConnectionPool(host='10.140.240.64', port=443): Max retries exceeded with url: /api/v4/projects/118/packages/pypi/files/47f05b39ebe470235b70724fb049985ea75fad6c1a5007ad3462f3d430da338b/tg_client-0.1.10-py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)')))
谁知道如何跳过这个验证?
更新:
我尝试从私有存储库添加包:
[[tool.poetry.source]]
name = "my_package"
url = "https://..."
secondary = true
Run Code Online (Sandbox Code Playgroud)
也许这就是解决方案poetry config certificates.my_package.cert false不起作用的原因。
我不知道为什么,但我的 ImageFields 返回完整的 URL 路径。
这是 MEDIA_URL 设置:
MEDIA_URL = '/cc/cc/media/'
Run Code Online (Sandbox Code Playgroud)
我使用这个自定义 FileStorage:
class ASCIIFileSystemStorage(FileSystemStorage):
def get_valid_name(self, name):
return str(uuid.uuid4()) + '.' + name.split('.')[-1]
Run Code Online (Sandbox Code Playgroud)
和简单的 ModelSerializers(来自 django rest 框架),而不会像模型 Module1Item 那样覆盖 smth:
class Module1Item(models.Model):
...
background = models.ImageField(blank=True)
class Module1ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Module1Item
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
这些行为的原因是什么?我需要相对网址。
我有一个观点:
class DealsView(APIView):
permission_classes = (IsAuthenticated, IsOwnerOrCuratorOrDirectorOrNotAllowed, )
def get(self, request, user_pk):
...
Run Code Online (Sandbox Code Playgroud)
但是为了正确检查权限,我需要将user_pk url参数传递给权限:
class IsOwnerOrCuratorOrDirectorOrNotAllowed(permissions.BasePermission):
def has_permission(self, request, view):
...
Run Code Online (Sandbox Code Playgroud)
默认情况下,除了self,request和view外,它没有其他任何参数。我该怎么办?
python django permissions url-parameters django-rest-framework
django ×3
python ×3
javascript ×2
vue.js ×2
assertions ×1
asynchronous ×1
email ×1
gsap ×1
imagefield ×1
jestjs ×1
permissions ×1
ssl ×1
templates ×1
unit-testing ×1
url ×1